本人想实现一个功能,在Dialog1对话框中有一个Button,按下去让dialog2对话框显示,但是却遇到问题:
问题1:
我用的是connect方式,
connect(this->ui->pushButton,SIGNAL(clicked()),mydialog2,SLOT(show()));
构建的时候一切通过。结果一运行,就提示 exe已停止运行。根本连界面都不显示。
问题2:
把上面的connect注释了。
给pushbutton添加一个clicked槽函数
void Dialog::on_pushButton_clicked()
{
this->mydialog2->show();
}
构建执行之后,在按下pushbutton之前没有问题,关键是按下pushbutton之后,程序就一直卡在那,什么也不能动,貌似是死了。
问题1和问题2中的是两种不同的实现方式,我想问的是,这两种方式他们有错没?如果有的话错在哪里?
还有就是我这么做需要在什么地方添加什么吗?(主要是怕在.pro文件中有应该添加东西而我知道,没有添加),有能实现这个功能的大神麻烦点拨点拨我,只要能实现这个功能也可以,不管用怎么样的方法,我的环境,windows qt5,用的是qtcreate。坐等大神指点小徒
------解决方案--------------------
问题1:
我用的是connect方式,
connect(this->ui->pushButton,SIGNAL(clicked()),mydialog2,SLOT(show()));
应该改为 connect(this->ui->pushButton,SIGNAL(clicked()), this,SLOT(show()));
应为要接受触发的还是在this下。
自定义槽函数里show()的实现
{
mydialog2->exec();
}
dialog的显示是调用exec();
------解决方案--------------------
再补充一句weidget的显示是调用show()函数