女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

如何在Qt Design Studio中創建連接和狀態

我快閉嘴 ? 來源:嵌入式小生 ? 作者:嵌入式小生 ? 2022-09-16 09:54 ? 次閱讀

在Qt Design Studio中可以使用對話框創建應用軟件UI的動態行為。在該工具中,有兩種方式創建應用軟件動態行為:

(1)使用Connections視圖創建連接、編輯連接。

(2)使用States視圖創建狀態。

下文將分別描述這兩種方式。

一、使用Connections視圖創建連接

(1-1)關聯信號和信號處理程序

我們可以在UI組件和應用程序之間創建連接,使它們能夠相互通信

如果以代碼的方式創建組件、信號和信號處理程序之間的連接,參見《QML信號和事件處理機制》;本文主要是使用Qt Design Studio圖形界面來創建。

首先找到Qt Design Studio的Connections編輯視圖,如果界面中沒該視圖,需要從下圖所示的地方調出Connections編輯視圖:

33254f38-34f2-11ed-ba43-dac502259ad0.png

調出后,Connections視圖如下圖所示:

33431644-34f2-11ed-ba43-dac502259ad0.png


按照如下步驟關聯組件的信號和信號處理程序:

(1)轉到Connections視圖中的Connections選項卡。

(2)選擇+(Add)按鈕添加一個連接。

(3)雙擊『Target』列中的值,選擇添加連接到信號的組件。

(4)雙擊『Signal Handler』列中的值,從組件可用的所有信號列表中選擇連接將監聽的信號。

(5)雙擊『Actions』列中的值,設計當發出信號時要執行的操作(此處可以使用JavaScript來指定操作)。可以右鍵單擊一個連接,并在上下文菜單中選擇『Open connection Editor』,可以在connection Editor中編輯該連接:

3369ef44-34f2-11ed-ba43-dac502259ad0.png

如果需要的信號處理程序沒有列在『Signal Handler』列中,我們可以按照以下步驟添加:

(1)右鍵單擊Navigator2D視圖中的組件,然后在上下文菜單中選擇『Add New Signal Handler』:

337efb5a-34f2-11ed-ba43-dac502259ad0.png

(2)在Signal字段中,選擇要處理的信號:

33a28caa-34f2-11ed-ba43-dac502259ad0.png

(3)可以選擇單選按鈕以篩選列表,只顯示經常使用的信號或屬性更改。

(4)點擊OK

在實際設計中,我們可以使用連接編輯器為Action和Assignment創建JavaScript表達式。Action選項用于將組件連接到信號,Assignment選項用于從另一個組件中獲取屬性值。

(1-2)在Qt Design Studio中設置屬性綁定

在上述文中,描述了如何在Qt Design Studio中創建組件之間的信號和信號處理程序之間的連接。本小節將描述在Qt Design Studio中如何設置屬性綁定。

屬性綁定與設置信號和信號處理程序差不多是一樣的,在Connections視圖中,我們選擇『Binding』一欄:

33bebe02-34f2-11ed-ba43-dac502259ad0.png

(1)選擇+(Add)按鈕,為當前選擇的組件添加綁定。『Item』列顯示組件ID。

(2)雙擊『Property』列中的值,選擇要綁定到源屬性的屬性。

(3)雙擊『Source Item』列中的值,選擇要使用的組件。

(4)雙擊『Source Property』列中的值,選擇要將目標屬性綁定到的屬性。

我們還可以右鍵單擊綁定,然后在上下文菜單中選擇『Open binding Editor』,可以在binding Editor中設置綁定的JavaScript表達式:

33d76cd6-34f2-11ed-ba43-dac502259ad0.png

(1-3)指定動態屬性

每個預設組件都有一組預設的屬性,當然我們也可以添加特定組件類型或自定義組件的自定義屬性。

可以將組件的屬性綁定到動態表達式,從而為組件定義可被其他組件讀取的全局屬性。例如,可以為根組件指定可以在子組件中使用的全局屬性。

在QML組件設計中,任何數據驅動的內容都應該作為相關組件的公共屬性(別名屬性)導出。

在Qt Design Studio中我們可以在Connections視圖下『Properties』一欄指定組件的動態屬性:

33ee15bc-34f2-11ed-ba43-dac502259ad0.png

(1)選擇+(Add)按鈕,為當前選擇的組件添加動態屬性。『Item』列顯示組件ID。

(2)雙擊『Property』列中的值,為屬性定義一個名稱。屬性名稱必須以小寫字母開頭,且只能包含字母、數字和下劃線。JavaScript保留字不是有效的屬性名。

(3)雙擊『Property Type 』列中的值指定屬性類型。

(4)雙擊『Property Value』列中的值指定屬性值。

我們可以右鍵單擊一個屬性,并在上下文菜單中選擇『Open Binding Editor』,將該屬性的值綁定到另一個屬性的值,或者綁定到在應用程序中可以訪問的數據:

34002298-34f2-11ed-ba43-dac502259ad0.png

注:我們在Navigator2D視圖中選中組件時,為組件添加的屬性將顯示在『Properties』視圖中。

二、使用States視圖設計狀態

在QML中,所有Item都有一個默認狀態,用于定義對象和屬性值的默認配置。我們可以通過向states屬性添加State項來定義新的狀態,用于Item在不同的配置之間切換。

例如,如果要更改一個按鈕的外觀,我們則可以在按鈕組件中定義狀態,用于隱藏按鈕圖片,然后在該位置顯示另一種圖片,或者更改按鈕背景、文本顏色。當在其他組件中使用此按鈕實例時,可以通過隱藏或顯示按鈕組件實例來定義狀態以實現不同的顯示效果。

在Qt Design Studio中,我們在『States』視圖中編輯QML文檔中的狀態:

34168c90-34f2-11ed-ba43-dac502259ad0.png

點擊+號,添加一個新的狀態。單擊新狀態可以在2D視圖下切換到對應的Item下,然后在『properties』中修改組件或組件實例的屬性值。

當添加新的狀態后,可以點擊下圖所示的位置可以設置狀態:

3429ed80-34f2-11ed-ba43-dac502259ad0.png

在彈出的上下文菜單中,有幾個選項:

(1)如果需要將某一個狀態設置為應用程序的啟動狀態,就選擇『Set as Default』,當該狀態被設置成默認狀態后,該狀態的右上角會出現“Default”文本標識;如果需要重置狀態,就選擇『reset Default』。

(2)如果需要指定什么時候應用狀態,就選擇『Set when Condition』選項,在Binding Editor中,為狀態指定一個when屬性,把該屬性的值設置為一個布爾表達式(當該表達式的計算結果為true時,則會應用該狀態):

34393164-34f2-11ed-ba43-dac502259ad0.png


在『Binding Editor』中組合表達式時,代碼補全特性會列出可以在表達式中使用的組件及其屬性。

總結

本文描述了如何在Qt Design Studio中創建連接和狀態。在Qt Design Studio中使用視圖設置的參數,都會在『Code』視圖中添加對應的QML代碼;反之,如果一個QML文件中已經存在相關的QML代碼了,則會在Qt Design Studio中2D/3D視圖下顯示。

如果QML文檔中存在錯誤或者存在Qt Design Studio不能識別的代碼塊時,Qt Design Studio將不能在對應的視圖中正確顯示。所以在QML中,存在一種UI文件(文件后綴為:.ui.qml),該文件只用于在Qt Design Studio中編輯。

本文所述基于Qt Design Studio工具的內容同樣適用于Qt Creator 設計模式下的操作。

使用 Qt Design Studio工具能為我們的開發省去一些代碼編寫工作。在實際開發中,就根據自己的喜愛選擇了。

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

    關注

    2

    文章

    204

    瀏覽量

    29507
  • design
    +關注

    關注

    0

    文章

    161

    瀏覽量

    46382
  • Qt
    Qt
    +關注

    關注

    1

    文章

    313

    瀏覽量

    38793

原文標題:使用Qt Design Studio設計UI動態行為

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

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    何在 Vivado完成平臺準備工作——創建硬件設計

    裝加速平臺 ;第 4 部分: 在 Vitis 測試定制加速平臺 )。 在本文中,我們將講解如何在 Vivado Design Suite 完成平臺準備工作,以便將其用作為 Viti
    的頭像 發表于 09-26 11:29 ?3950次閱讀
    如<b class='flag-5'>何在</b> Vivado<b class='flag-5'>中</b>完成平臺準備工作——<b class='flag-5'>創建</b>硬件設計

    何在RTT STUDIO配置USB STM32WB55文件呢

    用EVN工具也是一樣。導致RTT STUDIO不能把USB文件 stm32wbxx_ll_usb.c文件納入工程里。如何在配置里面增加USB?手動創建一個新文件,連接到這個源文件上,可
    發表于 08-12 11:19

    何在S32 Design Studio查看寄存器變化與否?

    何在 S32 Design Studio 查看寄存器變化與否?
    發表于 03-24 06:47

    何在S32 Design Studio中使用遠程系統資源管理器插件?

    我正在嘗試從 Windows 10 機器遠程使用 S32 Design Studio 到 Ubuntu 機器。嘗試通過 S32 Design Studio 建立任何類型的遠程
    發表于 04-27 08:27

    何在S32 Design Studio添加MCAL / Drivers / OS / Middleware組件?

    幫忙。如何在 S32 Design Studio - 3.4/3.5 - 添加 MCAL / Drivers / OS / Middleware 組件 - 我認為這兩個版本的過程是相
    發表于 05-06 06:38

    何在Nuclei Studio IDE編譯lib庫文件?

    請教下: 1, 如何在Nuclei Studio IDE,編譯lib庫文件,類似于stm32 keil中生成的lib。如下圖: 2, 如何在Nuclei
    發表于 08-11 10:59

    何在Android Studio添加C/C ++代碼

    此Screencast將逐步向您展示如何在Android Studio 0.5.1向您的Android應用程序添加C / C ++代碼,在Gradle構建期間編譯它,并正確處理APK生成。
    的頭像 發表于 11-06 06:20 ?3656次閱讀

    何在IP Integrator創建MicroBlaze設計

    了解如何在IP Integrator創建簡單的MicroBlaze設計,并創建一個在KC705目標板上運行的簡單軟件應用程序。
    的頭像 發表于 11-20 06:13 ?3401次閱讀
    如<b class='flag-5'>何在</b>IP Integrator<b class='flag-5'>中</b><b class='flag-5'>創建</b>MicroBlaze設計

    何在PADS創建差分對

    使用 PADS 集成的項目,快速、簡便、自動創建差分對。觀看 PADS 如何在不到 30 秒的時間內創建 50 個差分對!
    的頭像 發表于 05-21 06:10 ?6017次閱讀

    Qt Creator連接MCU

    Qt Creator連接MCU連接MCU要求搭建開發環境MCU插件指定MCU設置添加MCU設備添加MCU套件在MCU上運行應用程序連接MCUQt for MCU使您能夠使用QML和
    發表于 11-01 16:25 ?14次下載
    <b class='flag-5'>Qt</b> Creator<b class='flag-5'>連接</b>MCU

    如何將Qt Design Studio工程轉換為Qt Creator工程

    在實際QML使用,可能會存在多人協同開發或者C++與QML混合開發的使用場景,這時候可能會使用不同的軟件,多數情況下是Qt Creator和Qt Design
    的頭像 發表于 09-19 09:09 ?5738次閱讀

    Qt Design Studio工具下創建設計工程

    在QML開發,許多小伙伴喜歡Qt Creator這款工具,集C++ Widget 和 Qt Quick設計于一體。
    的頭像 發表于 09-20 09:10 ?3708次閱讀

    Visual Studio Code - 如何在Visual Studio Code(VS Code)構建和調試RL78項目

    本視頻演示如何在Visual Studio Code(VS Code)構建和調試LLVM for Renesas RL78項目。 000 介紹051 構建024 調試 原文標題:Visual
    的頭像 發表于 08-14 12:05 ?1171次閱讀

    e2 studio創建lib文件及使用

    e2 studio創建lib文件及使用
    的頭像 發表于 01-18 08:06 ?942次閱讀
    e2 <b class='flag-5'>studio</b><b class='flag-5'>創建</b>lib文件及使用

    何在DevEco Studio利用CodeGPT接入DeepSeek

    近期DeepSeek火爆全球,那一樣很火的開發鴻蒙原生應用的DevEco Studio如果把它接入,會發生什么“化學反應”呢?下面我們將詳細分享如何在DevEco Studio利用C
    的頭像 發表于 02-19 13:52 ?873次閱讀
    如<b class='flag-5'>何在</b>DevEco <b class='flag-5'>Studio</b><b class='flag-5'>中</b>利用CodeGPT接入DeepSeek