我从QDialog类派生出了自己的类,且叫myDialog吧,类的头文件在mydialog.h,实现文件在mydialog.cpp中,然后我又在QMainWindow中定义了一个槽函数,槽函数功能是创建一个myDialog对象叫dialog并使其可见,现在把QMainWindow中的一个QAction对象的triggered()信号上面的槽函数connect起来,实现点击QAction对象会出现myDialog窗体,但是直接用dialog.show()窗体无法显示,而用if(dialog.exec()){dialog.show()}时则可以看到dialog窗体,请各位高手帮我解释一下原因,感激不尽~~~(稍微有点长,请耐心看完)
//mainwindow.cpp
MainWindow::MainWindow(QWidget *parent):QMainWindow(parent)
{
setupUi(this);
connect(action_cap,SIGNAL(triggered()),this,SLOT(capture_setting()));
}
void MainWindow::capture_setting()
{
myDialog dialog(this);
dialog.show();
}
//mydialog.h
class myDialog:public QDialog,public Ui::myDialog
{
Q_OBJECT
public:
myDialog(QWidget *parent=0);
};
//mydialog.cpp
myDialog::myDialog(QWidget *parent):QDialog(parent)
{
setupUi(this);
}
------解决方案--------------------
myDialog dialog(this);
dialog.show();
show完 马上释放了 , 所以没有.这好像是老问题了...
myDialog *dialog = new myDialog(this);
dialog->show();
试试
------解决方案--------------------
myDialog dialog;
dialog.exec();