QtCreator创建多窗体后,如何在父子窗体之间传递参数!
1个回答
展开全部
网上都有很多例子来说这个问题的, 但是他们举的例子只适合动态创建子窗体的; 一般网上人说的例子都是用QtCreator创建一个主窗体,然后在主窗体中用代码生成的子窗体, 这时候你直接在实例化子窗体时就可以直接把父窗体的指针传递给了子窗体, 这当然是容易的。 然后像我一样很少做界面开发的人员,都是用QTCREATOR生成的窗体, 这时如何传递消息呢? 网上都有很多例子来说这个问题的, 但是他们举的例子只适合动态创建子窗体的; 一般网上人说的例子都是用QtCreator创建一个主窗体,然后在主窗体中用代码生成的子窗体, 这时候你直接在实例化子窗体时就可以直接把父窗体的指针传递给了子窗体, 这当然是容易的。 然后像我一样很少做界面开发的人员,都是用QTCREATOR生成的窗体, 这时如何传递消息呢? 当然还是用SIGNAL/SLOT机制了, 但这里需要选择合适的地方来用CONNECT函数来连接信号与槽函数。 这个方法, 我已经测试成功了; 而且效率相当不错的。下面我只是简单地说一下思路吧。
1. 创建子窗体时, 不要像主窗体创建时那样把参数 (QWidget parent = 0),写成这样的话, 你自己找麻烦;
2. 如果你在子窗体里发送信号, 那么你要设置自己的信号函数, 同时在父窗体中设置相应的槽函数。
class subclass : public QDialog{Q_OBJECT
public: private: signals:
1. 创建子窗体时, 不要像主窗体创建时那样把参数 (QWidget parent = 0),写成这样的话, 你自己找麻烦;
2. 如果你在子窗体里发送信号, 那么你要设置自己的信号函数, 同时在父窗体中设置相应的槽函数。
class subclass : public QDialog{Q_OBJECT
public: private: signals:
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询