QT中使用QTabWidget实现多对话框的切换
多对话框切换的实现
最近在做嵌入式Linux的QT界面,需要用到标签页实现不同对话框的切换,然后在QT中使用QTabWidget来实现该功能,特此记录下,自己踩过的坑。
主界面
该QT界面的主界面是使用QT的设计师界面创建的,即mainwindow(主界面),然后在mainwindow.ui的设计师界面中插入Tab Widget,插入后的界面如下所示,并将Tab Widget重新命名为Change_Dialog。
子界面
在整个工程中插入子对话框,在工程中使用Add New插入新的对话框,本界面中新的对话框使用的也是设计师界面,新建对话框的过程的界面如下所示,选择的是Dialog without Buttons,然后点下一步,在下一步中输入类名,即可创建出新的子对话框。
在创建好的子对话框中放入一个button,用来测试释放通过标签页来切换对话框是否成功。FileDialog为本博主新建的子对话框
在主对话框的.cpp中引用新建的子对话框的.h头文件
在主对话框的.h中引用新建的子对话框的.h头文件,即可在主对话框中调用子对话框的类文件,在mainwindow.h文件中引入三个界面变量,FileDialog,SetRecordModel和SetData都为新建的子对话框
// An highlighted block
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QTableWidget>
#include <QDebug>
#include <QApplication>
#include <QDesktopWidget>
#include "filedialog.h"
#include "setrecordmodel.h"
#include "setdata.h"
QT_BEGIN_NAMESPACE
namespace Ui {
class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public: