我有一个从qt小部件创建的主窗口应用程序。
现在我想在这个主窗口中添加一个子窗口,以便我可以连续切换主窗口和子窗口
答案 0 :(得分:2)
首先使用Qt创建一个新项目,然后右键单击项目名称 - >添新... 并创建一个像这个图像的新UI类: ,
现在你有两种形式。 你需要在First中用Second类创建一个对象。
first.h
#ifndef FIRST_H
#define FIRST_H
#include <QMainWindow>
#include <second.h>
#include <QTimer>
namespace Ui {
class First;
}
class First : public QMainWindow
{
Q_OBJECT
public:
explicit First(QWidget *parent = 0);
~First();
private slots:
void on_pushButton_clicked();
void changeWindow();
private:
Ui::First *ui;
Second *second;
QTimer * timer;
};
#endif // FIRST_H
first.cpp
#include "first.h"
#include "ui_first.h"
First::First(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::First)
{
ui->setupUi(this);
second = new Second();
timer = new QTimer();
connect(timer,&QTimer::timeout,this,&First::changeWindow);
timer->start(1000); // 1000 ms
}
First::~First()
{
delete ui;
}
void First::changeWindow()
{
if(second->isVisible())
{
second->hide();
this->show();
}
else
{
this->hide();
second->show();
}
}
void First::on_pushButton_clicked()
{
second->show();
}
fisrt.pro
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = First
TEMPLATE = app
SOURCES += main.cpp\
first.cpp \
second.cpp
HEADERS += first.h \
second.h
FORMS += first.ui \
second.ui