如何从另一个Qt Widget表单类调用MainWindow类
How to call MainWindow class from another Qt Widget form class
我想在程序启动时显示一个对话框,为此,我创建了一个名为Dialog
的新Qt设计器表单类。总的来说.cpp我有以下代码来执行Dialog
类:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Dialog diag ;
diag.show() ;
return a.exec();
}
Dialog
类包含一个"确定"按钮。当用户按下该按钮时,对话框窗口将关闭,MainWindow
将打开。为此,我像这样编码:
void Dialog::on_ok_butt_clicked()
{
MainWindow w ;
w.show() ;
}
但主窗口未显示...如何解决这个问题?
您在对象的生存期中存在的问题。在 on_ok_butt_clicked(( 中,创建 MainWindow 对象。从on_ok_butt_clicked((返回后,主窗口对象将被销毁。
您需要创建一个对象,以便在退出 on_ok_butt_clicked(( 方法后保留它。另一种选择是在显示对话框时停止执行方法(这不适用于 QMainWindow,因为 QMainWindow 继承自 QWidget,而不是 QDialog(。第一个解决方案:
MainWindow *w = new MainWindow(this);
w->show();
第二种解决方案:
SomeDialog w;
w.exec();
按照你的方式,对话框对象是主窗口的父对象,这不是一个好的设计,因为对话框通常是一个临时对象,而主窗口将是你的主UI,所以我更喜欢在你的主窗口中创建对话框,当你想先在主窗口中显示hide()
对话框时,不要忘记accept()
或reject()
你的对话框
相关文章:
- 来自 DLL 的函数调用 [表观调用的括号前面的表达式必须具有(指向-)函数类型]
- 表观调用前面的表达式必须具有指向 func 类型的指针
- GTK 最大化表单 C++
- win 表单应用程序字符串^ 到 int
- 结构化绑定初始值设定项表单 { 赋值表达式 } 对于 clang 上的数组类型失败
- 可以在JSON文件的帮助下在Qt中创建UI表单
- 表单未显示在凭据提供程序中
- 表单显示对话框函数错误,并且不执行下面的语句
- 如何从 winapi 中的编辑表单获取文本?
- 在 cout 中将线条表单文件与自定义文本组合时出现问题
- 从 dll 调用 opencv 垫到 Windows 表单,图像出现故障
- 如何从另一个Qt Widget表单类调用MainWindow类
- 在 QT 中创建带有表单的控件时的递归构造函数调用
- 析构函数调用表单不适当的库
- 如何在VCL表单应用程序中创建和调用函数
- Android NDK调用java方法表单cpp
- 由触发器调用的 MS SQL XP 更改 C++ 文件日期戳,以允许刷新表单应用程序 vb.net
- 从MFC表单应用程序调用web服务器
- 如何调用创建.ui设计表单在Qt与button.clicked()事件
- Windows 表单自动化C++使用低级别 WinAPI 调用