天天看點

【Qt】Qt在VS中實作多視窗顯示思路步驟效果代碼

文章目錄

  • 思路
  • 步驟
    • 基本視窗
    • 新視窗
    • 新對話框
  • 效果
  • 代碼

思路

Qt中一個視窗實際上就是一個

QMainWindow

派生類,在

main()

函數中使用

QMainWindow.show()

将其顯示出來。是以,如果要實作多視窗,我們隻要多建立幾個Qt的

MainWindow

,然後再需要的地方顯示出來就好。同理還可以使用建立

QDialog

派生類的方式,顯示新的視窗(對話框)。

步驟

基本視窗

【Qt】Qt在VS中實作多視窗顯示思路步驟效果代碼

在VS中建立一個名為"multiwindow"的

Qt GUI Application

項目後,項目中會有如下幾個預設檔案:

【Qt】Qt在VS中實作多視窗顯示思路步驟效果代碼

1.

multiwindow.ui

(xxx.ui):這個檔案是打開Qt Designer的,用于可視化設計UI界面;

2.

ui_multiwindow.h

(ui_xxx.h):這個頭檔案是使用Qt Designer設計圖形界面後生成的代碼;

3.

multiwindow.h

(xxx.h):包含該Qt視窗類定義的頭檔案,包含槽函數定義等;

4.

multiwindow.cpp

(xxx.cpp):該Qt視窗的源檔案,包含各種具體實作等。

multiwindow.ui

中使用Qt Designer設計如下包含2個

pushButton

的界面:

【Qt】Qt在VS中實作多視窗顯示思路步驟效果代碼

新視窗

項目

中點選

添加新項

,如下圖,選擇Qt中的

Qt MainWindow Form File

,這是新增一個Qt視窗。

【Qt】Qt在VS中實作多視窗顯示思路步驟效果代碼

之後會在項目中添加一個新的

newWindow.ui

(xxx.ui)和

ui_newWindow.h

(ui_xxx.h)。

【Qt】Qt在VS中實作多視窗顯示思路步驟效果代碼

點開

newWindow.ui

,這就是新視窗的設計界面:

【Qt】Qt在VS中實作多視窗顯示思路步驟效果代碼

注意:在設計新視窗之前,我們最好把紅色框位置預設的視窗名稱

MainWindow

改了,這個是生成代碼後的類名稱。如果不改的話,在下一次建立視窗後,還是這個名稱,會發生重名問題。

【Qt】Qt在VS中實作多視窗顯示思路步驟效果代碼

剛才在添加新項之後,僅生成了

xxx.ui

檔案和其對應的

ui_xxx.h

頭檔案,還缺少該視窗類的頭檔案和源檔案,需要我們自己添加。

【Qt】Qt在VS中實作多視窗顯示思路步驟效果代碼

newWindow.h

頭檔案和

newWindow.cpp

源檔案的内容,我們可以參考預設視窗的頭檔案和源檔案。下面給出範例:

newWindow.h

#pragma once

#include <QtWidgets/QMainWindow>
#include "ui_newWindow.h"

class newWindow : public QMainWindow
{
	Q_OBJECT

public:
	newWindow(QWidget *parent = Q_NULLPTR);

private:
	Ui::newWindow ui;
};
           

newWindow.cpp

#include "newWindow.h"

newWindow::newWindow(QWidget *parent)
	: QMainWindow(parent)
{
	ui.setupUi(this);
}
           

這個

newWindow

就是新視窗的類,之後我們隻需要在基本視窗中包含這個頭檔案,并且定義一個

newWindow

對象就可以使用這個新視窗了。

新對話框

新對話框的方式實際上和視窗類似,隻是在定義類的頭檔案時,繼承的應該是

QDialog

類。

項目

中點選

添加新項

,如下圖,選擇Qt中的

Qt Dialog Form File

,這是新增一個Qt視窗。圖中第一個和第二個的差別在于生成的對話框中“ok”和“cancel”按鈕的位置一個在下邊,一個在右邊。

【Qt】Qt在VS中實作多視窗顯示思路步驟效果代碼

同樣,我們需要在ui中修改名稱,并且為其添加頭檔案和源檔案。

【Qt】Qt在VS中實作多視窗顯示思路步驟效果代碼
【Qt】Qt在VS中實作多視窗顯示思路步驟效果代碼

在頭檔案中定義對話框類時,注意繼承的是

QDialog

類,下面給出範例:

newDialog.h

#pragma once

#include <QtWidgets>
#include "ui_newDialog.h"

class newDialog : public QDialog
{
	Q_OBJECT

public:
	newDialog();

private:
	Ui::newDialog ui;
};
           

newDialog.cpp

#include "newDialog.h"

newDialog::newDialog()
{
	ui.setupUi(this);
}
           

這個

newDIalog

就是新對話框的類,之後我們隻需要在基本視窗中包含這個頭檔案,并且定義一個

newDIalog

對象就可以使用這個新對話框了。

效果

【Qt】Qt在VS中實作多視窗顯示思路步驟效果代碼

代碼

由于檔案較多,直接打包給大家提供下載下傳連結。

https://download.csdn.net/download/qinchang1/10961920

(這個積分好像預設的,可能檔案比較大,是以要5積分,不是會員不建議下載下傳)

如有錯誤,歡迎指正!

繼續閱讀