QT5父窗口怎么向子窗口传值

lunqp 2017-07-05 10:00:57
如题,我知道子窗口怎么向父窗口传值,可是反过来怎么弄呢
...全文
1609 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
trytry1992 2017-07-10
  • 打赏
  • 举报
回复
把子窗口声明为父窗口的成员,想怎么调就怎么调
lunqp 2017-07-08
  • 打赏
  • 举报
回复
引用 7 楼 qqwangfan 的回复:
可以判断一下connect的返回值是不是true,信号有没发送,槽有没执行等方法来验证有没关联成功。
我判断的connect是false,应该就是信号没有发过去,代码如下

son::son(QWidget *parent)
	: QWidget(parent)
{
	ui.setupUi(this);
	fuzi *f = (fuzi*)parentWidget();
	bool a = connect(f, SIGNAL(sendData(QString)), this, SLOT(receiveData(QString)));
	if (a)
		QMessageBox::information(this, "", QString::number(i1)); //弹出一个对话框
	else
		QMessageBox::information(this, "", "2"); //弹出一个对话框
}
son::~son()
{
}
void son::receiveData(QString data)
{
	ui.text->setText(data);     //获取传递过来的数据  
}
上面的代码是子窗口的cpp的构造函数,显示的对话框是1,就是没有连接

fuzi::fuzi(QWidget *parent)
	: QMainWindow(parent)
{
	ui.setupUi(this);
	p_s = new son();
	connect(ui.send, SIGNAL(clicked()), this, SLOT(send()));  //发送数据
}
fuzi::~fuzi()
{
}
void fuzi::send()
{
	emit sendData(ui.text->text());  //获取lineEdit的输入并且传递出去  
}
这个是父窗口的代码
  • 打赏
  • 举报
回复
可以判断一下connect的返回值是不是true,信号有没发送,槽有没执行等方法来验证有没关联成功。
  • 打赏
  • 举报
回复
引用 5 楼 lunqp 的回复:
[quote=引用 4 楼 feiyangqingyun 的回复:] 信号槽是最佳方案!么有比这个方法更好更爽的!
我用子窗口向父窗口传值就是用信号槽,可是父窗口传子窗口信号槽这个方法感觉不行啊。传递不过去[/quote] 可以的,信号槽关联时是不需要理会信号和槽对象有任何关系,也就是即使信号和槽有父窗口子窗口关系也是一样行的。不行的话应该不是信号槽的问题,应该是关联时候参数不对或者其他问题导致。
lunqp 2017-07-08
  • 打赏
  • 举报
回复
引用 4 楼 feiyangqingyun 的回复:
信号槽是最佳方案!么有比这个方法更好更爽的!
我用子窗口向父窗口传值就是用信号槽,可是父窗口传子窗口信号槽这个方法感觉不行啊。传递不过去
  • 打赏
  • 举报
回复
每个QObject对象都有一个 QList<T> findChildren(const QString & name = QString(), Qt::FindChildOptions options = Qt::FindChildrenRecursively) const 的函数可以查找到这个对象的所有子对象,因此父窗口可以使用这个函数获取到所有的子窗口,然后遍历子窗口一一给他传值。
画茧自缚 2017-07-06
  • 打赏
  • 举报
回复
http://blog.csdn.net/zbw1185/article/details/48519371
  • 打赏
  • 举报
回复
你在创建子窗口时可以设定其parent为父窗口,当需要传数据给父窗口时可调用子窗口的parent方法。
feiyangqingyun 2017-07-06
  • 打赏
  • 举报
回复
信号槽是最佳方案!么有比这个方法更好更爽的!

16,203

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧