c++ - 如何隐藏和显示主窗口?
问题描述
我正在创建一个有两个 MainWindow 的应用程序。单击按钮后,将显示第二个 MainWindow。但是如果在第一个按钮的代码中我给了hide()
MainWindow1,我就不能再发送它了。
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
hide();
two = new MainWindow2 (this);
two -> show();
}
#include "mainwindow2.h"
#include "ui_mainwindow2.h"
#include "mainwindow.h"
MainWindow2::MainWindow2(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow2)
{
ui->setupUi(this);
}
MainWindow2::~MainWindow2()
{
delete ui;
}
void MainWindow2::on_pushButton_clicked()
{
MainWindow w;
w.show();
}
解决方案
考虑以下代码...
void MainWindow2::on_pushButton_clicked()
{
MainWindow w;
w.show();
}
该MainWindow
实例w
是函数的本地实例,一旦超出范围就会被销毁。
您的意图(至少对我而言)有点不明确,但我的猜测是您想MainWindow2::on_pushButton_clicked
重新展示原始MainWindow
. 如果是这样,那么你可以简单地做......
void MainWindow2::on_pushButton_clicked ()
{
if (auto *w = parentWidget())
w->show();
}
因为当前MainWindow2
实例是使用原始实例MainWindow
作为其父级创建的。
推荐阅读
- java - 我是否需要创建另一个活动来显示一些信息?(安卓) (Java)
- php - 使用重定向插件和正则表达式仅将 pdf 文件从 html 站点重定向到新的 wordpress 目录
- r - 有没有办法在 R 中制作具有不同变量对的二维表?
- php - PHP - 显示每个项目的文件数
- java - 字符转 ASCII
- python - 将像 01Q1 这样的年季度字符串转换为日期时间对象
- amazon-web-services - 尝试从 AWS Lambda 但不是桌面访问 AWS Device Farm 时出现 SSL 证书错误
- flutter - 小部件未直接出现在缩放的小部件下方
- reactjs - Electron Typescript Material-UI withStyles 错误 TS2694:命名空间 '".../node_modules/csstype/index"' 没有导出的成员 'FontFace'
- pyspark - 旋转一个 spark 数据框并计算上面 2 行的总和