• 7911阅读
  • 4回复

【提问】关于Main Window 与 Dialog 之间如何应用信号槽进行通信,谢谢! [复制链接]

上一主题 下一主题
离线calf9007
 

只看楼主 倒序阅读 楼主  发表于: 2005-09-03
Qt 3.1.2 :
Main Window 与 Dialog 之间如何应用信号槽进行通信,
详细:
Main Window 的菜单触发打开一个Dialog ,Dialog发出一个signal ,Main Window 接收
connect()的第三个参数receiver不知道怎么些?
connect(this, SIGNAL(ReLogin(QString ,int)), this->parent(), SLOT(ChangePowerSlot(QString ,int)));
我试了this->parent() 不行,请高手赐教!
谢谢
[ 此贴被XChinux在2005-09-03 22:44重新编辑 ]
离线XChinux

只看该作者 1楼 发表于: 2005-09-03
可以這樣來處理:
無論如何,MainWindow裡,要記住這個Dialog,並且在MainWindow把它connect。
connect(&dialog, SIGNAL(ReLogin(QString, int)), this, SLOT(ChangePowerSlot(QString, int)));

其實無論是在哪個裡面connect,最主要的是,要把sender和receiver的實際地址都要搞到。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线giscn
只看该作者 2楼 发表于: 2005-09-04
Re:【提问】关于Main Window 与 Dialog 之间如何应用信号槽进行通信,谢
1. 如果你的dialog的parent是main window,你的方法肯定是可以的,所以检查你的dialog parent到哪了?(构造函数里要输入parent)
2. 如果dialog是top level的,那么在dialog里加一个私有变量指到 main window,在connect时用这个变量
3. XChinux的方法在大部分情况下可行,但如果dialog是动态生成的,就无法事先在mainwindow里找到&dialog。
http://nzt.spaces.live.com
离线jbw2002
只看该作者 3楼 发表于: 2009-07-21
this->parent()很好用 直接连slot就可以了 ;-)
离线rqzrqh

只看该作者 4楼 发表于: 2009-07-21
ReLoginDialog里面写一个信号一个槽,比如ReLoginDilaog里面的button发送点击信号,连接到该信号的槽处理函数
ReLoginDialog::slots_XXX()
{
    emit  信号(参数)
}
mainwindow.cpp
connect(ReLoginDialog,信号(参数),this,处理槽)
快速回复
限100 字节
 
上一个 下一个