• 6624阅读
  • 8回复

为啥我的信号和槽连接后没有反应 [复制链接]

上一主题 下一主题
离线ppdg
 
只看楼主 倒序阅读 楼主  发表于: 2009-03-09
class ppmain :public QMainWindow,public Ui::MainWindow
{
      public :
             ppmain();
      public slots:
            
              void showit();
};
ppmain::ppmain()
{
    setupUi(this);
    connect(pushButton, SIGNAL(clicked()),this,SLOT(showit()));
}
void ppmain::showit()
{
     QMessageBox::warning(0, QObject::tr("OK"),
                             "my main");
}
应该点按钮弹出个消息框啊,为啥没动静
只看该作者 1楼 发表于: 2009-03-09
漏了Q_OBJECT
离线xjcook

只看该作者 2楼 发表于: 2009-03-10
楼上正解
其实你根本就没连上,如果你监视了connect的返回值,肯定是false,如果你看了命令行的输出,还会有失败信息给你,
告诉你为什么没有连接上,这些东西qt已经做好了的。
离线ppdg
只看该作者 3楼 发表于: 2009-03-10
但是如果我加上后:
class ppmain :public QMainWindow,public Ui::MainWindow
{
Q_OBJECT
      public :
             ppmain();
      public slots:
            
              void showit();
};
ppmain::ppmain()
{
    setupUi(this);
    connect(pushButton, SIGNAL(clicked()),this,SLOT(showit()));
}
void ppmain::showit()
{
     QMessageBox::warning(0, QObject::tr("OK"),
                             "my main");
}
就会报很多
undefined reference to的错。。这是为啥
离线sss1383786
只看该作者 4楼 发表于: 2009-03-10
Q_OBECT加上 以后
要moc一下
离线ppdg
只看该作者 5楼 发表于: 2009-03-10
这个问题刚刚解决了,重新qmake一下就好了。但是问题是加上以后按钮依旧不管用。。。。
class ppmain :public QMainWindow,public Ui::MainWindow
{
      Q_OBJECT
      
      public :
             ppmain(){setupUi(this);connect(pushButton,SIGNAL(clicked()),this,SLOT(pp())); }
  public slots:
        
         void pp(){     QMessageBox::warning(0, QObject::tr("OK"),
                             "my main");}
}
离线ppdg
只看该作者 6楼 发表于: 2009-03-10
难道是因为如果用设计师那么信号啥的也必须用设计师连接?我用设计师连接信号到pp()函数,然后就管用,但是自己写就不行。。。
离线ppdg
只看该作者 7楼 发表于: 2009-03-10
算了,问题已经很诡异地好了。。。就此封贴。。。感谢大家。。。
我总感觉qt这里面有很多bug。。。不是很舒服
离线foxyz

只看该作者 8楼 发表于: 2009-03-11
sigh,自己一知半解不要怪QT有Bug,建议好好去看帮助。QT的帮助对于一般的应用已经很详尽了
快速回复
限100 字节
 
上一个 下一个