2023-12-05 Qt學習總結3


點擊 <C 語言編程核心突破> 快速C語言入門


Qt學習總結

  • 前言
  • 九 QObject基類
  • 十 QWidget基類
  • 十一 QMainWindow類
  • 總結


前言

要解決問題: 學習qt最核心知識, 多一個都不學.


九 QObject基類

QObject是Qt中最基本的類,所有Qt中的對象都從該基類派生而來。

QObject提供了信號槽機制和屬性系統,使得Qt應用程序可以實現高效的事件處理和內置的類型轉換。

QObject是一個C++類,同時也是Qt元對象系統的重要概念。

QObject還可以自定義事件和事件過濾器,使得開發者可以輕松地編寫和組織復雜的應用程序。

使用QObject作為基類,可以使得派生類成為一個Qt對象,從而能夠利用Qt的信號槽機制、事件處理機制和屬性系統,為應用程序提供更靈活、更可靠的架構支持。

以下是QObject的常用函數:

  1. QObject::QObject(QObject *parent = nullptr) 構造函數,創建一個QObject對象。

  2. QObject::~QObject() 析構函數,銷毀QObject對象。

  3. void QObject::setObjectName(const QString &name) 設置對象的名稱。

  4. QString QObject::objectName() const 返回對象的名稱。

  5. void QObject::setProperty(const char *name, const QVariant &value) 設置對象的屬性。

  6. QVariant QObject::property(const char *name) const 返回對象的屬性。

  7. bool QObject::connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type = Qt::AutoConnection) 連接一個信號與槽函數。

  8. bool QObject::disconnect(const QObject *sender, const char *signal, const QObject *receiver, const char *method) 斷開一個信號與槽的連接。

  9. void QObject::deleteLater() 在事件循環中刪除對象。

  10. QObjectList QObject::children() const 返回子對象的列表。

  11. bool QObject::event(QEvent *event) 處理事件。

  12. bool QObject::eventFilter(QObject *watched, QEvent *event) 過濾事件。

  13. QThread *QObject::thread() const 返回對象所屬的線程。

  14. bool QObject::blockSignals(bool block) 阻止或取消阻止這個對象的所有信號。

  15. bool QObject::signalsBlocked() const 返回是否阻止了這個對象的所有信號。

  16. void QObject::dumpObjectInfo() 輸出對象信息。

  17. void QObject::dumpObjectTree() 輸出對象樹形結構。

十 QWidget基類

QWidget是Qt中所有用戶界面類的基類,它提供了一個空白的窗口部件,可以作為其他窗口部件的父類。

QWidget提供了很多基本的函數和信號,包括繪制、布局、尺寸調整、事件處理等。

QWidget還支持嵌套,可以將多個QWidget嵌套在一起形成復雜的界面。

除了QWidget,Qt還提供了一些其他的窗口部件類,例如QMainWindowQDialog等。

這些窗口部件類都是從QWidget派生而來,因此它們都可以使用QWidget提供的函數和信號。

但是這些窗口部件類還提供了一些特殊的功能,例如菜單欄、工具欄、狀態欄等,可以方便開發者快速構建各種類型的用戶界面。

下面是QWidget基類常用的函數:

  1. QWidget():構造函數,創建一個基本的QWidget對象;

  2. virtual ~QWidget():虛析構函數,釋放QWidget對象;

  3. void setWindowTitle(const QString& title):設置窗口標題;

  4. void setWindowIcon(const QIcon& icon):設置窗口圖標;

  5. void resize(int w, int h):設置窗口大小;

  6. void setFixedSize(int w, int h):設置窗口固定大小;

  7. void move(int x, int y):移動窗口到給定的位置;

  8. void show():顯示窗口;

  9. void hide():隱藏窗口;

  10. void close():關閉窗口;

  11. void setCursor(const QCursor& cursor):設置光標;

  12. QWidget* parentWidget() const:返回父窗口;

  13. void setLayout(QLayout *layout):設置布局管理器;

  14. QLayout* layout() const:返回當前布局管理器;

  15. void setStyleSheet(const QString& styleSheet):設置樣式表;

  16. void setWindowFlags(Qt::WindowFlags type):設置窗口標識。

十一 QMainWindow類

QMainWindow是Qt應用程序中最常用的窗口類型之一。

它提供了一個完整的應用程序主窗口的基礎, 可以包含菜單欄、工具欄、狀態欄和中央窗口部件等。

QMainWindow類繼承自QWidget類, 它提供了許多方法和信號來簡化應用程序的開發和管理。

可以使用它的方法來管理菜單欄、工具欄和狀態欄的內容,以及中央窗口部件的位置和大小等。

QMainWindow類常用函數:

  1. QMainWindow(QWidget * parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags()) 構造函數。

  2. void setCentralWidget(QWidget * widget) 設置窗口的中間部件。

  3. QMenuBar* menuBar() const 返回窗口的菜單欄部件。

  4. QToolBar* addToolBar(const QString & title) 添加工具欄部件。

  5. QStatusBar *statusBar() const 返回窗口的狀態欄部件。

  6. void setStatusBar(QStatusBar * statusbar) 設置窗口的狀態欄部件。

  7. void addDockWidget(Qt::DockWidgetArea area, QDockWidget * dockwidget) 添加可停靠的窗口部件。

  8. QWidget* centralWidget() const 返回窗口的中間部件。

  9. QList<QDockWidget *> dockWidgets() 返回窗口中所有的可停靠的窗口部件。

  10. Qt::ToolBarArea toolBarArea(QToolBar * toolbar) const 返回工具欄部件的停靠區域。

  11. void removeDockWidget(QDockWidget * dockwidget) 刪除可停靠的窗口部件。

  12. QWidget * takeCentralWidget() 取走窗口的中間部件并將其返回。

  13. void setCorner(Qt::Corner corner, Qt::DockWidgetArea area) 設置可停靠的窗口部件的角落。

  14. void setDockOptions(QMainWindow::DockOptions options) 設置可停靠的窗口部件的選項。


總結

九 QObject基類
十 QWidget基類
十一 QMainWindow類


點擊 <C 語言編程核心突破> 快速C語言入門


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/214849.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/214849.shtml
英文地址,請注明出處:http://en.pswp.cn/news/214849.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Hbase2.5.5分布式部署安裝記錄

文章目錄 1 環境準備1.1 節點部署情況1.2 安裝說明 2 Hbase安裝過程Step1&#xff1a;Step2:Step3:Step4&#xff1a; 3 Web UI檢查狀態并測試3.1 Web UI3.2 創建測試命名空間 1 環境準備 1.1 節點部署情況 Hadoop11&#xff1a;Hadoop3.1.4 、 zookeeper3.4.6、jdk8 Hadoop1…

JOSEF 靜態延時中間繼電器 JZS-7G/42 DC110V 導軌安裝

系列型號&#xff1a; JZS-7G-57端子排延時中間繼電器&#xff1b; JZS-7G-42X端子排延時中間繼電器&#xff1b; JZS-7G-22X端子排延時中間繼電器&#xff1b; JZS-7G-21端子排延時中間繼電器&#xff1b; JZS-7G-41端子排延時中間繼電器&#xff1b; JZS-7G-51端子排延…

git bash查看遠程倉庫地址

進入代碼路徑 git remote -vgit remote -v

MySQL執行語句 Table ‘mysql.servers‘ doesn‘t exist

執行語句報錯&#xff1a; mysql> flush privileges; ERROR 1146 (42S02): Table mysql.servers doesnt exist解決&#xff1a; 進入數據庫 刪除servers表 mysql> use mysql Database changed mysql> drop table if exists servers; Query OK, 0 rows affected, …

IoTDB服務安裝教程-單機版

文章目錄 單機版&#xff08;試用&#xff09;下載地址安裝環境安裝JDK設置最大文件打開數為 65535 安裝服務目錄結構如下啟動 IoTDB使用 Cli 工具IoTDB 的基本操作創建數據庫查看所有數據庫創建時間序列插入時間序列數據查詢數據退出會話 停止 IoTDB 單機版&#xff08;試用&a…

Day06(上) Liunx高級系統設計6-消息隊列

概述 消息隊列是消息的鏈表&#xff0c;存放在內存中&#xff0c;由內核維護 特點 1 、消息隊列中的消息是有類型的。 2 、消息隊列中的消息是有格式的。 3 、消息隊列可以實現消息的隨機查詢。消息不一定要以先進先出的次序讀取&#xff0c;編程時可以按消息的類型讀取。 …

排程系統中關于任務優先級的需求延伸與設計構思

無論是面向銷售訂單的MPS&#xff0c;還是基于多工序制約關系的APS&#xff0c;還是具體車間生產中針對單一工序的任務作業調度優化&#xff0c;都存在基于被排程對象(例如銷售訂單、生產工單、工序任務)的優先級進行優化的需求場景。當我們僅在宏觀、較高層次的角度考慮&#…

[go 面試] 緩存策略與應對數據庫壓力的良方

關注公眾號【愛發白日夢的后端】分享技術干貨、讀書筆記、開源項目、實戰經驗、高效開發工具等&#xff0c;您的關注將是我的更新動力&#xff01; 在高并發場景中&#xff0c;緩存是提高系統性能的關鍵利器。然而&#xff0c;緩存穿透、緩存擊穿、緩存雪崩等問題可能會給系統帶…

高效掃頻阻垢裝置廣譜感應水處理設備介紹工作原理使用參數和選型

? 1&#xff1a;高效掃頻阻垢裝置設備介紹 高效掃頻阻垢裝置是一種通過控制箱釋放變頻電磁信號&#xff0c;傳輸到信號放大裝置&#xff0c;管道外側的電磁線圈和電錘產生高頻機械振動&#xff0c;在管道和水中傳輸&#xff0c;通過共振機理破壞水分子之間的氫鍵&#xff0c;產…

記錄 | shell腳本開頭#!/bin/bash的作用

在 Shell 腳本中&#xff0c;#!/bin/bash 是指定腳本使用 Bash 解釋器的 shebang 語句。它出現在腳本的第一行&#xff0c;并告訴操作系統使用 Bash 解釋器來執行該腳本 #!/bin/bash....具體作用如下&#xff1a; 指定解釋器&#xff1a;#!/bin/bash 指定了使用 Bash 作為腳本…

Java - Lombok介紹、使用、工作原理、優缺點

介紹 Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java.Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging vari…

oracle修改SYS用戶(系統內置超級賬號)的方法和注意事項

Oracle數據庫中的SYS用戶是最高權限的賬號&#xff0c;擁有對整個數據庫的控制權。因此&#xff0c;在正常情況下&#xff0c;不建議修改SYS用戶。但是有些時候為了解決特定問題&#xff0c;可能需要修改SYS用戶的默認設置。 本文將介紹一些修改SYS用戶的方法和注意事項。 修…

算法Day28 二進制差異序列(格雷碼)

二進制差異序列&#xff08;格雷碼&#xff09; Description n 位二進制差異序列是一個由2^n個整數組成的序列&#xff0c;其中&#xff1a; 每個整數都在范圍[0, 2^n - 1]內&#xff08;含0和2^n - 1&#xff09; 第一個整數是0 一個整數在序列中出現不超過一次 每對相鄰整數…

linux 13-2day 日志輪轉 日志目錄 輪轉參數

目錄 日志系統rsyslog一、處理日志的進程二、常見的日志文件(系統、進程、應用程序)日志優先級 三、logrotate日志輪轉1、配置日志輪轉的路徑2、日志配置路徑四 、案例 日志系統rsyslog Linux 系統內核和許多程序會產生各種錯誤信息、告警信息和其他的提示信息&#xff0c; 這…

【go語言實踐】基礎篇 - 流程控制

if語句 go里面if不需要括號將條件表達式包含起來&#xff0c;這與python也有點類似 if 條件表達式 { } if num > 18 {// ... } else if num > 20 {// ... } else {// ... }需要注意的是go支持在if的條件表達式中直接定義一個變量&#xff0c;變量的作用域只在if范圍內…

【網絡安全】CTF入門教程(非常詳細)從零基礎入門到進階,看這一篇就夠了!

一、CTF簡介 CTF&#xff08;Capture The Flag&#xff09;中文一般譯作奪旗賽&#xff0c;在網絡安全領域中指的是網絡安全技術人員之間進行技術競技的一種比賽形式。CTF起源于1996年DEFCON全球黑客大會&#xff0c;以代替之前黑客們通過互相發起真實攻擊進行技術比拼的方式。…

計算機丟失msvcp140dll怎么恢復?快速解決dll缺失問題

在計算機使用過程中&#xff0c;我們經常會遇到一些錯誤提示&#xff0c;其中之一就是“msvcp140dll丟失”。msvcp140.dll是一個動態鏈接庫文件&#xff0c;它包含了許多C標準庫函數的實現。這些動態鏈接庫文件是程序運行所必需的&#xff0c;它們包含了許多函數和資源&#xf…

圣誕新奇驚喜:利用 AI 技術幫助圣誕老人創建手寫信件

人工智能甚至正在接管北極的任務。在即將到來的圣誕節假期之前&#xff0c;圣誕老人和他的助手們迎來了一項革命性的技術支持。一群樂于助人的精靈采用了人工智能技術&#xff0c;制作出獨一無二、看似親手書寫的信件&#xff0c;以確保遵守圣誕老人的「北極標準」。 這些信件通…

C語言實現選擇排序

完整代碼&#xff1a; #include<stdio.h>//交換函數&#xff0c;交換兩個數 void swap(int *a,int *b){int temp;temp*a;*a*b;*btemp; }//選擇排序&#xff0c;從小到大 //參數&#xff1a;arr[]表示待排序數組&#xff0c;len表示該數組長度 void select_sort(int arr[…

愛智EdgerOS之深入解析安全可靠的開放協議SDDC

一、協議簡介 在 EdgerOS 的智慧生態場景中&#xff0c;許多智能設備或傳感器的生命周期都與 SDDC 協議息息相關&#xff0c;這些設備可能是使用 libsddc 智能配網技術開發的&#xff0c;也有可能是因為主要功能上是使用其他技術如 MQTT、LoRa 等但是設備的上下線依然是使用上…