• 4905阅读
  • 10回复

加入pushbutton 遇到問題 [复制链接]

上一主题 下一主题
离线xy4301109
 
只看楼主 倒序阅读 楼主  发表于: 2009-06-29
我從http://www.arm9.net/download.asp下載    arm-qtopia.tgz
由arm-qtopia   內的 hello資料夾 內
我在  打算在 hello.h  跟  hello.cpp 內 加入一個QPushButton;
PushButton2->setGeometry(QRect(100,100,50,50));
connect(PushButton2,SIGNAL(clicked()),this,SLOT(close()));

編譯 放到arm上  PushButton 確實有產生    但是 connect  並沒有運行 close()
不知  是啥原因  
可以幫我 試試看嗎??  要如何做 才能 運行close()  呢??
  研究好幾天 還是找不出來
离线huangdi_1
只看该作者 1楼 发表于: 2009-06-29
close 改成 quit 试试?
离线xy4301109
只看该作者 2楼 发表于: 2009-06-29
一樣不可以  謝謝你的回答
离线allblue

只看该作者 3楼 发表于: 2009-06-29
你先自己定义 一个槽,链接到这个槽上,在槽里qDebug() 打印出提示,看看是那个地方没有运行,是槽没有链接上,还是信号没有发出来,还是close()槽本身有问题!!
黑暗魔法
离线xy4301109
只看该作者 4楼 发表于: 2009-06-29
我把 close() 換成   kk() 自己建的
發現 kk() 內 並沒有被執行
离线allblue

只看该作者 5楼 发表于: 2009-06-29
那么,说明信号并没被触发,或者说链接到这个槽的信号并没被触发,看看信号是不是连错了,如果连对了,是不是信号根本就没有发出来啊
黑暗魔法
离线xy4301109
只看该作者 6楼 发表于: 2009-06-29
發現 只到我 自己建的  都不能用
hello.h     內的 protected
                               加入  virtiual void  kk();

hello.cpp 加入
               void HelloForm::text()
                              {
                                MessageLabel->setText(tr("kkkkk"));
                              }
這是我加入的 可以幫我看哪出錯嗎  ?? 或有其他方法
  
离线xymail110
只看该作者 7楼 发表于: 2009-06-29
麻烦楼主贴一下源码
学无止境
离线xy4301109
只看该作者 8楼 发表于: 2009-06-29
源碼
附件: hello.rar (24 K) 下载次数:1
离线xymail110
只看该作者 9楼 发表于: 2009-06-29
晕,大哥,服了你了.

你都没有定义你的槽函数,怎么可能连接呢?受不了你.

class HelloForm : public HelloBaseForm
{
 Q_OBJECT
public:
    HelloForm( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
    virtual ~HelloForm();
    QPushButton* PushButton2;
    QLabel* Label1;
    QTimer* Timer1;    
protected:
    virtual void text();
    virtual void SayHello();
};

上面是你的.h文件的一部分,你知道slot是什么意思不?
不知道为什么你一定要用虚函数,如果不是必须的话,建议修改如下:

.
.
.
public:
  中间的函数省略
.
.
    slots:
        void text();
.
.
.

关键是那个slots,这是定义你自己的槽函数的地方.
你应该去看看关于信号和槽机制的例子,看看文档吧.
学无止境
离线xy4301109
只看该作者 10楼 发表于: 2009-06-29
嗯嗯~~ 感謝 你  
快速回复
限100 字节
 
上一个 下一个