Qt信号与槽的有关问题
Qt信号与槽的问题
我在自定义类里有一个signal信号,为DataUpdate(unsigned int a,long b);
想在对话框类中对textEdit写一个槽函数,将a,b的值显示在文本框中。这里涉及到不同类的对象之间进行信号和槽的连接,我不会做,请高手指教。
------解决方案--------------------
在对话框类中增加一个槽,在创建对话框的类中进行连接。如果可以的话,还可以把DataUpdate信号的参数改成QString的,这样就直接可以连接QTextEdit中的setText槽了。
------解决方案--------------------
在你的代码中,s是一个局部变量,等Dialog的构造函数结束时,s就没有了呀!
所以,具体该怎样连,还得看你的实际需求。我不是很确定你的aa和Dialog之间是否真的存在聚合或组合关系。
我只能顺这你现在的思路来判断,根据s变量的创建时间,我假定aa和Dialog之间是组合关系。即aa的对象包含在Dialog里面,而且与Dialog对象的生存周期一致。
那么你似乎应该这样写你的代码
我在自定义类里有一个signal信号,为DataUpdate(unsigned int a,long b);
想在对话框类中对textEdit写一个槽函数,将a,b的值显示在文本框中。这里涉及到不同类的对象之间进行信号和槽的连接,我不会做,请高手指教。
------解决方案--------------------
在对话框类中增加一个槽,在创建对话框的类中进行连接。如果可以的话,还可以把DataUpdate信号的参数改成QString的,这样就直接可以连接QTextEdit中的setText槽了。
------解决方案--------------------
在你的代码中,s是一个局部变量,等Dialog的构造函数结束时,s就没有了呀!
所以,具体该怎样连,还得看你的实际需求。我不是很确定你的aa和Dialog之间是否真的存在聚合或组合关系。
我只能顺这你现在的思路来判断,根据s变量的创建时间,我假定aa和Dialog之间是组合关系。即aa的对象包含在Dialog里面,而且与Dialog对象的生存周期一致。
那么你似乎应该这样写你的代码
- C/C++ code
Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog) { ui->setupUi(this); // s是Dialog的一个私有成员 s = new aa; connect(s, SIGNAL(DataUpdate(QString &)), ui->textEdit, SLOT(setText(QString &))); }
------解决方案--------------------
------解决方案--------------------
看红色的部分,笔误?
------解决方案--------------------
删除你的影子构建目录,重新编译。
------解决方案--------------------
就看看《C++ GUI Qt4编程(第二版)》吧,还有一本《C++设计模式——基于Qt4开源跨平台开发框架》