Qt 第二步 熟悉文件结构组成(二)
目錄導航:
《Qt 第一步 HelloWorld 的第一個程序》
《Qt 第二步 槽與信號(一) 實現點擊按鈕并彈窗》
本文參考《Qt5.9 c++開發》
上一篇文使用了槽與信號完成了點擊按鈕并彈窗的程序效果,這一篇文將會了解Qt的項目文件組成。本節將會了解Qt 項目中的項目文件部分內容。
在一個原始項目中包含:
- 項目組織文件. *.pro
- 入口文件main.cpp
- 窗體頭文件widget.h
- 窗體文件widget.ui
首先查看項目組織文件. *.pro
代碼為:
先看第一行 QT += core gui,core gui 是Qt中的GUI模塊,在這表示添加該模塊。
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets 使用 QT_MAJOR_VERSION 判斷 QT_MAJOR_VERSION 當前的版本是否大于4,如果大于則執行 QT += widgets加入widgets模塊。
CONFIG += c++11 表示使用C++ 11標準進行編譯。
DEFINES += QT_DEPRECATED_WARNINGS 表示當前某些過時函數或功能過時則警告。
SOURCES += \main.cpp \mainwindow.cpp 表示當前工程中的源文件。
HEADERS += \mainwindow.h 表示當前工程中的頭文件。
FORMS += \mainwindow.ui 表示當前工程中的ui 文件。
其它代碼之后的文章將會再了解。
接下來打開入口文件:
代碼如下:
入口函數主要是實現創建應用程序以及窗口,并且顯示窗口,最后運行應用程序。
- QApplication a(argc, argv); 創建應用程序實例。
- MainWindow w; 創建窗口實例。
- w.show();顯示窗口
- return a.exec(); 最后運行開始消息循環以及事件處理。
mainwindow.h 頭文件
#ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow>QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACEclass MainWindow : public QMainWindow {Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private slots:void on_pushButton_clicked();private:Ui::MainWindow *ui; }; #endif // MAINWINDOW_H在這個頭文件中現在主要看 Q_OBJECT,這是實現信號與槽必須加入的一個宏。
再看Ui::MainWindow *ui;,在這里這個 ui 屬于命名空間UI,這個指針是指向可視化界面,需要訪問界面上的組件需要通過 ui。
mainwindow.cpp 文件
#include "mainwindow.h" #include "ui_mainwindow.h" #include <QMessageBox>MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow) {ui->setupUi(this); }MainWindow::~MainWindow() {delete ui; }void MainWindow::on_pushButton_clicked() {QMessageBox::information(NULL, "這是標題", "@1_bit", QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes); }在當前類的構造函數中執行了 ui->setupUi(this);,它是執行了 Ui::MainWindow 類的 setupUi 函數,這個函數實現窗口的省城與各種屬性的設置、信號與槽到的關聯。
mainwindow.ui
<?xml version="1.0" encoding="UTF-8"?> <ui version="4.0"><class>MainWindow</class><widget class="QMainWindow" name="MainWindow"><property name="geometry"><rect><x>0</x><y>0</y><width>800</width><height>600</height></rect></property><property name="windowTitle"><string>MainWindow</string></property><widget class="QWidget" name="centralwidget"><widget class="QPushButton" name="pushButton"><property name="geometry"><rect><x>170</x><y>150</y><width>75</width><height>23</height></rect></property><property name="text"><string>PushButton</string></property></widget></widget><widget class="QMenuBar" name="menubar"><property name="geometry"><rect><x>0</x><y>0</y><width>800</width><height>23</height></rect></property></widget><widget class="QStatusBar" name="statusbar"/></widget><resources/><connections/> </ui>該ui文件為窗體定義的XML文件,定義了窗口所有組件的屬性設置及布局,信號與槽的關聯等。
總結
以上是生活随笔為你收集整理的Qt 第二步 熟悉文件结构组成(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python3 爬虫第二步Seleniu
- 下一篇: php基础教程 第一步 环境配置及hel