女人荫蒂被添全过程13种图片,亚洲+欧美+在线,欧洲精品无码一区二区三区 ,在厨房拨开内裤进入毛片

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Qt Designer中提供的原生界面元素

嵌入式小生 ? 來源:嵌入式小生 ? 2023-01-29 10:42 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、導讀

Qt是一個跨平臺的軟件開發工具,可以使用C++Python、Qml語言開發項目。在實際項目開發過程中,其提供了一個界面描述文件(xxx.ui)用于描述界面中有哪些元素,我們也可以使用對應的設計工具Qt Designer手動進行界面設計和布局。

本文基于Qt Designer,描述其提供的原生界面元素,除此之外,還描述如何使用自定義控件擴展Qt Designer。

二、Qt Designer中提供的原生界面元素

使用Qt Designer在.ui文件中進行界面設計和布局時需要知道其包含哪些界面元素,如下圖所示:

6f4663f0-9f08-11ed-bfe3-dac502259ad0.png

一般情況下,使用上圖所示的界面元素就能完成軟件界面的設計了。

三、Qt Designer的擴展接口

Qt提供了Qt Designer的擴展接口,這些接口以類的方式進行設計,命名為QDesignerxxx,如下圖所示:

6fa356b4-9f08-11ed-bfe3-dac502259ad0.png

為什么需要擴展Qt Designer呢?Qt Designer定位是一款設計軟件,在實際項目工程開發過程中,界面中的元素往往會重復出現,這時候,可以將這些重復出現且具有共性的界面元素封裝成自定義的擴展插件,并將其添加到Qt Designer中,這樣便可以在Qt Designer中直接用鼠標拖拽使用,進行信號和槽函數的編輯,加快了開發效率。

下面來看看Qt中提供的幾個Qt Designer擴展接口類的含義:

(1)QDesignerActionEditorInterface:該接口用于更改Qt Designer的動作編輯器。

(2)QDesignerContainerExtension:該接口用于在Qt Designer的工作空間中向自定義的多頁容器中添加頁面。

(3)QDesignerCustomWidgetCollectionInterface:該接口類用于在一個庫中包含多個自定義的小部件。

(4)QDesignerCustomWidgetInterface:該接口類用于允許Qt Designer訪問和構造自定義的小部件。

(5)QDesignerDynamicPropertySheetExtension:該類允許在Qt Designer的屬性編輯器中操作小部件的動態屬性。

(6)QDesignerFormEditorInterface:該類用于訪問Qt Designer的各種組件。

(7)QDesignerFormWindowInterface:該接口類用于查詢和操作出現在Qt Designer工作區中的窗體窗口。

(8)QDesignerFormWindowManagerInterface:該類用于在Qt Designer中操作窗體窗口的集合,并控制Qt Designer的窗體編輯操作。

(9)QDesignerMemberSheetExtension:該接口類用于操作小部件的成員函數,這些函數在使用Qt Designer的模式編輯信號和槽函數連接時顯示。

(10)QDesignerObjectInspectorInterface:該接口類用于更改Qt Designer的對象檢查器。

(11)QDesignerPropertyEditorInterface:該接口類用于查詢和操作Qt Designer的屬性編輯器的當前狀態。

(12)QDesignerPropertySheetExtension:該接口類用于操作小部件的屬性,這些屬性顯示在Qt Designer的屬性編輯器中。

(13)QDesignerTaskMenuExtension:該接口類用于向Qt Designer的任務菜單中添加自定義的菜單項。

(14)QDesignerWidgetBoxInterface:該接口類用于控制Qt Designer的小部件框的內容。

四、使用自定義插件擴展Qt Designer

要將自定義的小部件與QtDesigner集成,需要進行兩方面的處理:

(1)需要對自定義的小部件進行封裝描述,以便QtDesigner能夠識別。

(2)需要編寫一個合適的.pro,用于構建出合適的插件。

(4-1)創建接口描述

當開發好一個自定義的小部件后,則需要創建接口描述通知Qt Designer,才能將自定義的小部件作為插件添加到Qt Designer中。

在實際接口設計中,需創建QDesignerCustomWidgetInterface的子類,在子類中描述小部件各種公開的屬性,其中大部分是由基類中的純虛函數提供的,我們只需要重載這些純虛函數并返回相應的參數值即可。

QDesignerCustomWidgetInterface類中提供的純虛函數如下表所示:

函數 返回值
name() 提供小部件類的名稱
group() 描述該小部件在Qt Designer的Widget Box視圖中所屬的組
toolTip() 是一個簡短的描述,用于描述/識別Qt Designer中的小部件。
whatsThis() 在Qt Designer中為小部件提供更長描述。
includeFile() 描述使用此小部件的應用程序中必須包含的頭文件。此信息存儲在UI文件中,uic將使用這個信息在為包含自定義小部件的表單生成的代碼中創建合適的#include語句。
icon() 用于表示Qt Designer中Widget Box視圖下的小部件的圖標。
isContainer() 如果小部件將用于存放子小部件,則為True;否則返回false。
createWidget() 指向自定義小部件實例的QWidget指針,由提供的父組件構造。注意:createWidget()是一個工廠函數,只負責創建小部件。自定義的小部件屬性直到load()返回才可以使用
domXml() 用于描述小部件的屬性,例如:它的對象名稱、大小提示等信息
codeTemplate() 預留函數
initialize() 用于為自定義的小部件設置擴展和其他功能
isInitialized() 如果小部件已經初始化,則返回true;否則返回false。注意:在實際開發中,重新實現函數通常需要檢查initialize()函數,并返回測試的結果。

(4-2)插件導出

為了讓插件能夠在所有的平臺上都能正常工作,需要確保它們能夠導出Qt Designer所需要的符號。插件類必須導出,這樣才可以讓Qt Designer加載,需要下述幾個步驟:

(1)使用Q_PLUGIN_METADATA()宏用于聲明插件的元數據。例如下列代碼:

Q_PLUGIN_METADATA(IID"org.qt-project.Qt.QDummyPlugin"FILE"mymetadata.json")

IID后面的字符串為插件的IID參數。FILE后面的字符串是可選的,指向一個json文件。

(2)使用QDESIGNER_WIDGET_EXPORT宏描述自定義的小部件類。例如:

classQDESIGNER_WIDGET_EXPORTMyPlugin:publicQWidget
{
Q_OBJECT

public:
explicitMyPlugin(QWidget*parent=nullptr);

protected:
voidpaintEvent(QPaintEvent*event)override;
};

注:QDESIGNER_WIDGET_EXPORT宏定義必須添加,否則集成到Qt Creator 中編譯會報錯。不加的話可以在設計器中加載,但是編譯會報錯。

(3) 使用Q_INTERFACES宏讓Qt元對象系統知道這個插件。Q_INTERFACES 讓qobject_cast()能正確進行QObject*到接口指針的轉換,就此我們可以判斷插件的合法性。

(4-3)構建小部件

在前面描述了將已有自定義控件封裝成QtDesigner中使用的插件的代碼編寫過程,本小節將描述如何構建小部件,這一點則聚焦于.pro中,插件在編譯構建后則會以庫文件的方式生成。

(1)在.pro工程配置文件中添加如下參數配置項:

QT+=widgetsdesigner
CONFIG+=plugin
TEMPLATE=lib

QT += widgets designer語句添加了兩個模塊:widgets和designer,CONFIG += plugin語句用于描述這個工程是以插件的方式編譯構建,TEMPLATE = lib語句用于描述工程以庫的方式構建。

(2)在.pro工程配置文件中添加如下參數配置項:

target.path=$$[QT_INSTALL_PLUGINS]/designer
INSTALLS+=target

變量$[QT_INSTALL_PLUGINS]是一個占位符,表示已安裝的Qt插件的位置。

上面語句的意思則是指定插件的安裝位置,當執行安裝操作后,會將生成的庫文件復制到對應的目錄下(如何執行安裝操作,后文會寫到)。

(4-4)安裝小部件

(4-4-1)手動安裝

如果插件工程能夠正常編譯構建通過,則會生成插件庫文件。這時候我們需要將其復制到Qt Designer下的插件庫目錄中。路徑為具體Qt構建版本目錄/plugins/designer/中。

注:使用對應的構建套件編譯構建出的插件庫只能安裝到對應構建套件目錄中的/plugins/designer/目錄下,這樣插件庫才能被對應的Qt Designer正常加載和使用。

總而言之,編譯、構建、安裝、QtDesigner版本需要一致。

(4-4-2)自動安裝

在(4-3)小節的.pro工程描述文件中,使用INSTALLS指定了庫文件的安裝目錄,還需要添加一個安裝操作:

1、點擊QtCreator左側菜單欄下的『項目』一欄,進入項目配置界面。

2、選擇『Build 的步驟』下的“添加Build步驟”,點擊“Custom Process Step”按鈕新建一個build步驟,在輸入框中輸入如下命令:

6fc3d84e-9f08-11ed-bfe3-dac502259ad0.png

注:上述圖片操作本質是make install的寫法,由于是在Windows下,所以變成了mingw32-make。install參數表示在編譯構建完成后還需要執行安裝操作。

通過以上步驟,當在項目編譯構建后,則會將生成的插件庫文件自動復制到INSTALLS指定的目錄中。

(4-5)注意事項

如果小部件有特殊的行為,想要在Qt Designer中賦予這些行為,則需要在實際插件封裝代碼中提供initialize()函數的實現,以告訴Qt Designer特定行為配置的小部件的構造過程。

這個函數將在調用createWidget()之前首次被調用,并且在函數中可以設置一個內部標志,以便Qt Designer后續在調用插件的createWidget()函數時進行判斷測試。







審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • python
    +關注

    關注

    56

    文章

    4825

    瀏覽量

    86464
  • JSON
    +關注

    關注

    0

    文章

    122

    瀏覽量

    7339

原文標題:盤一盤Qt Designer的界面元素

文章出處:【微信號:嵌入式小生,微信公眾號:嵌入式小生】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Qt 設計器(Qt Designer)內容總結

    的習慣,也比書寫代碼要快速的多。Qt提供了這樣一個可視化的界面設計工具:Qt 設計器(QtDesigner)。其開始界面如上圖所示。
    發表于 12-15 16:12

    Qt 設計器(Qt Designer)內容總結

    界面設計的時候。這是因為這種設計方式更加符合人類思考的習慣,也比書寫代碼要快速的多。Qt提供了這樣一個可視化的界面設計工具:Qt 設計器
    發表于 08-22 15:20

    Qt 設計器(Qt Designer)內容總結

    的習慣,也比書寫代碼要快速的多。Qt提供了這樣一個可視化的界面設計工具:Qt 設計器(Qt Desi
    發表于 08-28 15:47

    Qt 設計器(Qt Designer)內容總結

    的習慣,也比書寫代碼要快速的多。Qt提供了這樣一個可視化的界面設計工具:Qt 設計器(Qt Desi
    發表于 10-11 09:25

    Qt 設計器(Qt Designer)內容總結

    的習慣,也比書寫代碼要快速的多。Qt提供了這樣一個可視化的界面設計工具:Qt 設計器(Qt Desi
    發表于 10-15 11:01

    Qt 設計器(Qt Designer)內容總結

    的習慣,也比書寫代碼要快速的多。Qt提供了這樣一個可視化的界面設計工具:Qt 設計器(Qt Desi
    發表于 10-25 09:34

    Qt 設計器(Qt Designer)內容總結

    的習慣,也比書寫代碼要快速的多。Qt提供了這樣一個可視化的界面設計工具:Qt 設計器(Qt Desi
    發表于 10-27 09:27

    如何完成Qt5主窗口的界面設計

    Qt5學習之路及嵌入式開發教程14:Qt5主窗口---界面設置這次任務要完成Qt5主窗口的界面設計Qt
    發表于 11-08 06:55

    基于QT/Embedded的可變情報板應用程序開發

    基于QT/Embedded的可變情報板應用程序開發 QT是奇趣科技推出的一種多平臺的C++圖形用戶界面應用程序框架。它包括QT開發庫QT
    發表于 03-03 09:36 ?867次閱讀

    Qt用戶界面設計PPT

    QT使用的界面設計例子,可以作為入門人員的學習使用與操作,個人感覺還是不錯的
    發表于 01-05 17:24 ?6次下載

    Qt DesignerQt Quick DesignerQt Creator應用程序有什么區別?

    不管是Qt新手還是開發過qt的群體來說,對Qt DesignerQt Quick Designer
    的頭像 發表于 03-17 09:40 ?7595次閱讀

    Qt5 學習之路及嵌入式開發教程14:Qt5主窗口---界面設置

    Qt5 學習之路及嵌入式開發教程14:Qt5主窗口---界面設置這次任務要完成Qt5主窗口的界面設計Qt
    發表于 11-03 09:51 ?13次下載
    <b class='flag-5'>Qt</b>5 學習之路及嵌入式開發教程14:<b class='flag-5'>Qt</b>5主窗口---<b class='flag-5'>界面</b>設置

    Qt ECG Monitor Qt嵌入式床旁心電監護儀項目源碼

    Qt ECG Monitor是由Qt-UI開發和維護的嵌入式床旁心電監護儀界面項目。項目提供C++/Python語言,基于Qt5下
    發表于 01-10 11:41 ?33次下載
    <b class='flag-5'>Qt</b> ECG Monitor <b class='flag-5'>Qt</b>嵌入式床旁心電監護儀項目源碼

    基于QT應用、TCP應用界面程序

    基于QT應用,TCP應用界面程序分享
    發表于 10-25 17:03 ?4次下載

    Qt,“大小限定”背后的思路和“坑”

    在使用Qt開發界面的時候,大小限定是常使用的操作。在界面元素的鼻祖QWidget中提供了一系列的方法,用于設定指定
    的頭像 發表于 02-02 10:31 ?1811次閱讀
    主站蜘蛛池模板: 肥乡县| 峨眉山市| 高青县| 安康市| 政和县| 静宁县| 宜川县| 瓮安县| 双辽市| 阳山县| 九江县| 泸定县| 灵寿县| 上高县| 威远县| 武隆县| 霞浦县| 九江市| 梅州市| 嵊泗县| 方城县| 宿州市| 民权县| 宁德市| 宁阳县| 老河口市| 麻栗坡县| 池州市| 会理县| 广丰县| 九寨沟县| 荣成市| 平潭县| 芦溪县| 克东县| 佳木斯市| 永嘉县| 黄山市| 永定县| 墨江| 石屏县|