平台:Qt+VS
目的:简单测试信号与槽。
问题:有两个 pushbutton,一个实现简单加法,一个实现关闭窗口。
- 将关闭窗口的 connnect 函数放在 Setupui 前面,在运行的时候就会引起内存冲突,放到后面就不会。
- 将计算加法的 connect 函数放在 Setupui 前面,在运行的时候反而不会引起内存冲突。
尝试:尝试过调换二者的位置,好像一样会有问题。
请教一下,原因是什么?
平台:Qt+VS
目的:简单测试信号与槽。
问题:有两个 pushbutton,一个实现简单加法,一个实现关闭窗口。
尝试:尝试过调换二者的位置,好像一样会有问题。
请教一下,原因是什么?
QtGuiApplication1::QtGuiApplication1(QWidget *parent)
: QMainWindow(parent)
{
connect(ui.pushButton, SIGNAL(clicked()), this, SLOT(Calculate()));
connect(ui.btn_CloseWindow, SIGNAL(clicked()), this, SLOT(CloseWindow()));
ui.setupUi(this);
}
1
weyou May 21, 2020 via Android
show me the code
|
3
lwh0328 May 21, 2020
没有完整的代码啊。。。。
粗略的感觉,setupUi 这里会分配内存创建内容什么的,connect 放前面的话,可能有些 ui 没有被分配资源? CloseWindow() 可能涉及到 destroy 一些资源,这样可能会回收一些没有被分配资源的变量。Calculate() 我的理解是进到你的这个函数里做运算。 |
4
weyou May 21, 2020 via Android
代码不全,猜想 setupUi 是 IDE 自动生成的代码吧,这个函数里一般都是创建控件,也就是说在 setupUi 调用之前,那些 button 还不存在呢,你都已经开始去连接信号槽了,显然是有问题的啊
|
5
newmlp May 21, 2020
connect 连的对象必须先 new 出来才行
|