• 7236阅读
  • 5回复

QT connect 點擊無反應 [复制链接]

上一主题 下一主题
离线flykof
 
只看楼主 倒序阅读 楼主  发表于: 2009-04-19
以下是小弟的設定及問題。

我設定兩個*.h檔,其中一個是做mainwindows設定,另一個是做某功能設定。

在mainwindows.cpp中
MainWindows :: MainWindows()
{
     Makerfid rfid;
     IDCardLabel = new QLabel(tr("Student ID_Card : "));
     IDCardNumberLabel = new QLabel(tr("Default!"));
    
     LoadPushButton = new QPushButton(tr("Load"));
    

     buttonBox = new QDialogButtonBox;
     buttonBox->addButton(LoadPushButton, QDialogButtonBox::ActionRole);
    
  
    connect(LoadPushButton, SIGNAL(clicked()), &rfid, SLOT(Test()));
     在此connect中設定當mainwindows的LoadPushButton有被click則會呼叫rfid的Test();
     但當我編譯好之後,按下LoadPushButton卻沒有任何反應?想請問各位前輩能否幫我解答這個問題。
     是否還有什麼地方沒有設定到?或缺少設定。

    
....
}
离线nokymali
只看该作者 1楼 发表于: 2009-04-19
检查一下Test函数,他必须是信号或者是槽函数,也就是所他必须是signal:或者slot:域中的函数。
离线zougw
只看该作者 2楼 发表于: 2009-04-19
仔细看一下你运行时终端打印出来的信息,如果没有连接上的话,它会有信息打印出来。另外你的rfid最好是指针,你查一下rfid那边的代码吧。
离线flykof
只看该作者 3楼 发表于: 2009-04-20
補充一下小弟做的設定
----rfid.h------
     public slots:
             void ReadTagInfo();
             void Test();          
      private:
              int fd;
-----------------
-----rfid.cpp----
void Makerfid::Test()
{
     printf("RFID SLOT TEST!!!");    \\將訊息列印到終端機
}
--------------------
我能夠肯定Test(),是有設定到slot中,而且編譯也有過,但當我下載到板子上去做測試時。
卻沒有任何的反應。也沒有出現任何的錯誤訊息。
不知道是否還有其他的問題?

下面我在程式中做了樓上大大的建議
Makerfid *rfid=new Makerfid();
...
connect(LoadPushButton, SIGNAL(clicked()), rfid, SLOT(Test()));
但還是依樣的情況,囧rz....
离线flykof
只看该作者 4楼 发表于: 2009-04-21
自己頂一下,求高手幫忙解惑。
离线hopstone
只看该作者 5楼 发表于: 2012-10-19
你好,我也碰到同样的问题,在PC上运行都正常,下到板子上,connect就没反应了,不知问题出在哪里。。。
快速回复
限100 字节
 
上一个 下一个