C++ 使用多用户界面';Qt中的s和Ui类?
我有一个简单的程序,我不记得如何在同一个程序中使用多个Ui表单类。我有C++ 使用多用户界面';Qt中的s和Ui类?,c++,qt,qtgui,qmainwindow,qt-signals,C++,Qt,Qtgui,Qmainwindow,Qt Signals,我有一个简单的程序,我不记得如何在同一个程序中使用多个Ui表单类。我有main窗口类,它有一个按钮,可以打开浏览器类。这些类几乎都是它们的默认值,这是我用来打开浏览器类ui的: void MainWindow::on_pushButton_2_clicked() { this->hide(); Browser browser; browser.show(); } 浏览器中的构造函数是简单的ui->setupUi(this) 所发生的情况是浏览器窗口打开,然后立即关
main窗口
类,它有一个按钮,可以打开浏览器
类。这些类几乎都是它们的默认值,这是我用来打开浏览器
类ui的:
void MainWindow::on_pushButton_2_clicked()
{
this->hide();
Browser browser;
browser.show();
}
浏览器中的构造函数是简单的ui->setupUi(this)
所发生的情况是浏览器
窗口打开,然后立即关闭 您可以在堆上创建浏览器,即:
Browser* browser=new Browser(this);
browser->show();
因为我假设它不是模态的。这是因为您正在堆栈上分配browser对象,然后它在函数结束时立即被销毁
void MainWindow::on_pushButton_2_clicked()
{
hide();
Browser browser; // <--- constructed
browser.show();
} // <--- destructed
作为班级成员。这将超出函数的范围,因此不会有问题
void MainWindow::on_pushButton_2_clicked()
{
hide();
m_browser.show();
}
我认为这是一种模态,因为它去掉了另一个窗口,但我认为它实际上是非模态的,好像另一个窗口在那里,它仍然可以访问。这是对Qt中模态的正确理解吗?@JVE999和user2672165:Fwiw,答案在“您需要”处是不正确的。。。这是一种选择,但不仅仅是这一种选择。此外,澄清问题更适合于评论,因此最好将此类内容放在评论中,或者在回答中写一句“提供…”等。没错,这就是解决问题的具体方法。另外,我是指针向导:)我喜欢指针。不幸的是,我不能将两个标记为正确,所以我给了两个a+1@JVE999:我不是说要选择哪一个答案,我只是说,根据您的选择,到目前为止,这个答案将位于顶部,并且声称这是唯一的选项是不正确的。人们通常会阅读顶部的选定内容,他们会被告知这是唯一的方法。调整词汇。我不是以英语为母语的人,但大家都能理解。请不要过度使用this->
。
void MainWindow::on_pushButton_2_clicked()
{
hide();
m_browser.show();
}