小部件关闭后 Qt 发出信号
Posted
技术标签:
【中文标题】小部件关闭后 Qt 发出信号【英文标题】:Qt emit signal after widget is closed 【发布时间】:2020-07-20 08:06:22 【问题描述】:我有一个子 QDialog,当从它按下按钮时,会从 QtConcurrent 打开一个套接字,如果出现错误,则会显示一个警告对话框。 但是如果用户关闭子 QDialog 以返回主窗口,则子 QDialog 插槽无法接收到信号。 我试图将信号广播到 parentWidget,但程序崩溃了,因为 this->parentWidget() 不再存在。 我使用此代码发出信号并将其连接到插槽
connect(this, SIGNAL(errorTcpSignal(QString)), this, SLOT(displayTcpError(QString)));
connect(&t, QOverload<QAbstractSocket::SocketError>::of(&QAbstractSocket::error),[=](QAbstractSocket::SocketError err)
emit errorTcpSignal("Error while changing game settings \n" + QVariant::fromValue(err).toString());
);
有没有办法解决这个问题? 非常感谢。
【问题讨论】:
【参考方案1】:已解决: 从子小部件发出信号,但从父小部件设置连接。
【讨论】:
以上是关于小部件关闭后 Qt 发出信号的主要内容,如果未能解决你的问题,请参考以下文章