讓你的QT顯示一個視窗吧

来源:https://www.cnblogs.com/huangzihan/archive/2019/04/19/10739304.html
-Advertisement-
Play Games

項目文件 01_QtTest.pro 頭文件 mywidget.h 源文件 main.cpp mywidget.cpp 結果顯示 ...


項目文件

01_QtTest.pro

#-------------------------------------------------
#
# Project created by QtCreator 2019-04-11T17:07:35
#
#-------------------------------------------------

#添加Qt支持的模塊,一個是core基礎代碼模塊,包含運算的,gui是圖形界面庫
QT       += core gui

#如果QT主版本大於4(也就是說當前使用的是Qt5或者更高版本),則需要添加widgets模塊
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

# 應用程式的名字
TARGET = 01_QtTest

#指定Makefile的類型, app
TEMPLATE = app

#工程項目包含的源文件
SOURCES += main.cpp \
           mywidget.cpp
           mywidget.cpp

#工程項目包含的頭文件
HEADERS  += mywidget.h

頭文件

mywidget.h

/**********************************
語句1 #ifndef 標識1
語句2 #define 標識1
語句3 #endif
語句4 ……
語句5 ……
該段代碼意思是:如果標識1沒有被定義,則重定義標識1,即執行語句2、語句3;
如果標識1已經被定義,則直接跳過語句2、語句3,直接執行語句4、語句5、……
***********************************/

#ifndef MYWIDGET_H
#define MYWIDGET_H

#include <QWidget>

class MyWidget : public QWidget//游標停留在紅色字體這裡,點擊F1可以查找手冊
{
    Q_OBJECT//信號與槽時候需要的

public:
    MyWidget(QWidget *parent = 0);
    /****************************
     * QWidget*parent=0,父控制項引用,用於向或者從父控制項傳遞事件Signal-Slot那些。
     * 這個不是繼承關係,而是圖形界面上各個組件之間的邏輯拓撲關係。
     * 比如放在Tab里的TextBox要隨著Tab大小的變化而變動自己的尺寸,事件就是通過這個傳遞的。
     * 形參裡面寫著parent=0,是預設值0,C++可以通過預賦值“省略”一些形參。
     * 你這裡就是myWidget不是任何控制項的子控制項。
     * 整個下來,myWidget繼承QWidget,構造函數預設為0.
     * 可以在構造函數初始化一切你想要的東西,說白點就是前戲!!
     ***************************/
    ~MyWidget();//對象消亡時,自動被調用,用來釋放對象占用的空間
};

#endif // MYWIDGET_H

源文件

main.cpp

#include "mywidget.h"

//QApplication應用程式類
//Qt頭文件沒有.h
//頭文件和類名一樣
#include <QApplication>

int main(int argc, char *argv[])
{
    //有且只有一個應用程式類的對象
    QApplication a(argc, argv);

    //MyWidget繼承與QWidget,QWidget是一個視窗基類
    //所以MyWidget也是視窗類
    //w就是一個視窗
    MyWidget w;

    //視窗創建預設是隱藏,需要人為顯示
    w.show();

    //讓程式一直執行,等待用戶操作
    //等待事件的發生
    return a.exec();
}

mywidget.cpp

#include "mywidget.h"

MyWidget::MyWidget(QWidget *parent)
    : QWidget(parent)
{
}

MyWidget::~MyWidget()
{

}

結果顯示


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 策略模式 定義 什麼是策略模式?定義了演算法族,分別封裝起來,讓它們之間可以互相替換,此模式讓演算法的變化獨立於使用演算法的客戶。 我的理解就是:比如我們接下來要說到的鴨子案例,有的鴨子可以飛,而飛又分為很多種,飛很高,飛得很低各種,我們就會把飛這個行為定義為介面,然後再分別去實現,而我們的鴨子只需要註入 ...
  • 單一職責原則SRP (Single reponsibility principle) BO(Business Object) :業務對象 Biz(Business Logic) :業務邏輯 SRP最簡單的例子:用戶信息維護類 單一職責原則SRP定義 應該有且僅有一個原因引起類的變更。( 一個介面只有 ...
  • [TOC] 在學習Observer觀察者模式時發現它符合敏捷開發中的OCP開放 封閉原則, 本文通過一個場景從差的設計開始, 逐步向Observer模式邁進, 最後的代碼能體現出OCP原則帶來的好處, 最後分享Observer模式在自己的項目中的實現. 場景引入 在一戶人家中, 小孩在睡覺, 小孩睡 ...
  • 1.什麼是spring IOC IOC(Inversion of Control)即控制反轉,在我們以往的編程中如果需要一個bean往往需要去手動去new一個出來。而spring幫我們解決了這個問題,在spring中我們只需要去定義bean,spring就會自動的幫我們實例化並管理Bean。而這些B ...
  • 控制台編程中,使用了滑鼠操作,遇到了控制台無法接收到滑鼠消息的問題,可嘗試一下辦法解決 【win10系統】 在控制台標題欄右鍵-預設值-選項,將一下對勾取消 然後調用如下函數: HANDLE hIn = GetStdHandle(STD_INPUT_HANDLE); SetConsoleMode(h ...
  • 一、網路簡介 網路是由節點和連線構成,表示諸多對象及其相互聯繫。 一個人玩: 兩個人玩: 多個人玩: 說明 網路就是一種輔助雙方或者多方能夠連接在一起的工具 如果沒有網路可想單機的世界是多麼的孤單 使用網路的目的 就是為了聯通多方然後進行通信用的,即把數據從一方傳遞給另外一方 前面的學習編寫的程式都 ...
  • Django 模板 === [toc] 模板按照我的理解,就是讓html中內容不固定,讓html內容已後端的方式動態起來(雖然前端mvvm框架也也開始有模板概念,所以廣義說模板概念不限於後端)。但是html基礎的內容還是是固定的。模板通過類編程的模板語法,可以將html模板中的動態內容,通過後端程式 ...
  • 原創不易,如需轉載,請註明出處 "https://www.cnblogs.com/baixianlong/p/10739579.html" ,希望大家多多支持!!! 一、線程基礎 1、線程與進程 線程是指進程中的一個執行流程,一個進程中可以運行多個線程。 進程是指一個記憶體中運行的應用程式,每個進程都 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...