当前位置: 代码迷 >> QT开发 >> 程序主窗口调用对话框时无法显示的有关问题
  详细解决方案

程序主窗口调用对话框时无法显示的有关问题

热度:17   发布时间:2016-04-25 03:37:55.0
程序主窗口调用对话框时无法显示的问题
本帖最后由 u011434036 于 2013-09-24 15:39:53 编辑
我从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();
  相关解决方案