QtCreator创建多窗体后,如何在父子窗体之间传递参数!

 我来答
囧囧囧嫧z
推荐于2016-03-21 · TA获得超过156个赞
知道答主
回答量:132
采纳率:75%
帮助的人:140万
展开全部
网上都有很多例子来说这个问题的, 但是他们举的例子只适合动态创建子窗体的; 一般网上人说的例子都是用QtCreator创建一个主窗体,然后在主窗体中用代码生成的子窗体, 这时候你直接在实例化子窗体时就可以直接把父窗体的指针传递给了子窗体, 这当然是容易的。 当然还是用SIGNAL/SLOT机制了, 但这里需要选择合适的地方来用CONNECT函数来连接信号与槽函数。 这个方法, 我已经测试成功了; 而且效率相当不错的。下面我只是简单地说一下思路吧。 1. 创建子窗体时, 不要像主窗体创建时那样把参数 (QWidget parent = 0),写成这样的话, 你自己找麻烦; 2. 如果你在子窗体里发送信号, 那么你要设置自己的信号函数, 同时在父窗体中设置相应的槽函数。 子窗体: 定义发射的信号 class subclass : public QDialog{Q_OBJECTpublic:private:signals: void emit_your_signals(paramters);};父窗体: 定义接收信号的槽 class parent : public QWidget{Q_OBJECTpublic slots: void accept_your_signals(parameters);};然后在子窗体实体化时进行链接: ui-setupUI(){connect(subwindowpointer, signal, parentwindowpointer, slot);}即可以了以上都是简化写法, 突出信号与槽位置与关系; 剩下的就很简单了, 在你的 子窗体实例化时
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式