先隐藏其余的界面,在需要的时候点击显示出来。
先看一下效果:
整体界面:
#pragma once
#include <QWidget>
#include "ui_QtGuiExtern.h"
class QtGuiDetail;
class QtGuiExtern : public QWidget {
Q_OBJECT
public:
QtGuiExtern(QWidget *parent = Q_NULLPTR);
~QtGuiExtern();
private:
void init();
private slots:
void slotDetail();
private:
Ui::QtGuiExtern ui;
QtGuiDetail* _guiDetail = nullptr;
};
#include "QtGuiExtern.h"
#include "QtGuiDetail.h"
QtGuiExtern::QtGuiExtern(QWidget *parent)
: QWidget(parent) {
ui.setupUi(this);
//设置窗口固定大小,不能利用拖拽改变大小,否则再次单机【详细】按钮时,对话框不能恢复到初始状态
ui.verticalLayout->setSizeConstraint(QLayout::SetFixedSize);
init();
_guiDetail = new QtGuiDetail;
_guiDetail -> hide();
ui.horizontalLayoutDetail->addWidget(_guiDetail);
}
QtGuiExtern::~QtGuiExtern() {
}
void QtGuiExtern::init() {
connect(ui.pushButtonDetail, SIGNAL(clicked()), this, SLOT(slotDetail()));
}
void QtGuiExtern::slotDetail() {
if (_guiDetail->isHidden()){
_guiDetail->show();
} else {
_guiDetail->hide();
}
}
可扩展的界面:
#pragma once
#include <QWidget>
#include "ui_QtGuiDetail.h"
class QtGuiDetail : public QWidget {
Q_OBJECT
public:
QtGuiDetail(QWidget *parent = Q_NULLPTR);
~QtGuiDetail();
private:
Ui::QtGuiDetail ui;
};
#include "QtGuiDetail.h"
QtGuiDetail::QtGuiDetail(QWidget *parent)
: QWidget(parent) {
ui.setupUi(this);
}
QtGuiDetail::~QtGuiDetail() {
}
aaa