日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Qt 第二步 熟悉文件结构组成(二)

發布時間:2023/12/4 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt 第二步 熟悉文件结构组成(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄導航:
《Qt 第一步 HelloWorld 的第一個程序》
《Qt 第二步 槽與信號(一) 實現點擊按鈕并彈窗》

本文參考《Qt5.9 c++開發》

上一篇文使用了槽與信號完成了點擊按鈕并彈窗的程序效果,這一篇文將會了解Qt的項目文件組成。本節將會了解Qt 項目中的項目文件部分內容。

在一個原始項目中包含:

  • 項目組織文件. *.pro
  • 入口文件main.cpp
  • 窗體頭文件widget.h
  • 窗體文件widget.ui

首先查看項目組織文件. *.pro

代碼為:

QT += core guigreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsCONFIG += c++11 DEFINES += QT_DEPRECATED_WARNINGS SOURCES += \main.cpp \mainwindow.cppHEADERS += \mainwindow.hFORMS += \mainwindow.ui# Default rules for deployment. qnx: target.path = /tmp/$${TARGET}/bin else: unix:!android: target.path = /opt/$${TARGET}/bin !isEmpty(target.path): INSTALLS += target

先看第一行 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 文件。
其它代碼之后的文章將會再了解。

接下來打開入口文件:

代碼如下:

#include "mainwindow.h"#include <QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv);MainWindow w;w.show();return a.exec(); }

入口函數主要是實現創建應用程序以及窗口,并且顯示窗口,最后運行應用程序。

  • 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 第二步 熟悉文件结构组成(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。