1. 程式人生 > >QtQuick桌面應用開發指導 3)實現UI和功能_B 4)動態管理Note物件_A

QtQuick桌面應用開發指導 3)實現UI和功能_B 4)動態管理Note物件_A

3.2 把Page Item和Marker Item繫結

之前我們實現了PagePanel元件, 使用了三個state來切換Page元件的opacity屬性; 這一步我們會使用Marker和MarkerPanel元件來實現頁面導航; 

在原型階段, MarkerPanel元件十分簡單, 沒有任何功能; 它使用了Repeater型別來產生三個QML Item以及Marker元件作為delegate; 

MarkerPanel應該儲存當前啟用的marker(標記), 即那個被使用者點選的marker; 基於MarkerPanel中啟用的marker, PagePanel會更新它的state屬性; 我們需要將PagePanel的state屬性和MarkerPanel新的屬性--持有當前啟用marker的屬性繫結起來;

在MarkerPanel中定義一個string屬性--activeMarker;

// MarkerPanel.qml

1 2 3 4 5 6 7 Item { id: root width: 150;    height: 450 // a property of type string to hold // the value of the current active marker property string activeMarker: "personal"
//...

我們可以把一個markerid值儲存起來, 用來唯一地識別marker item; 這樣, activeMarker會持有使用者所點選的marker item的markerid的值, 

根據model, Repeater元素可以產生三個marker item, 因此我們可以使用一個model來儲存markerid值, 然後在Repeater中使用;

// MarkerPanel.qml

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 Item { id: root width: 150;    height: 450 // a property of type string to hold // the value of the current active marker property string activeMarker: "personal" // a list for holding respective data for a Marker item. property variant markerData: [ { markerid: "personal" }, { markerid: "fun" }, { markerid: "work" } ] Column { id: layout anchors.fill: parent spacing: 5 Repeater { // using the defined list as our model

相關推薦

QtQuick桌面應用開發指導 3)實現UI功能_B 4)動態管理Note物件_A

3.2 把Page Item和Marker Item繫結 之前我們實現了PagePanel元件, 使用了三個state來切換Page元件的opacity屬性; 這一步我們會使用Marker和MarkerPanel元件來實現頁面導航;  在原型階段,

spring boot + vue + element-ui全棧開發入門——基於Electron桌面應用開發

前言   Electron是由Github開發,用HTML,CSS和JavaScript來構建跨平臺桌面應用程式的一個開源庫。 Electron通過將Chromium和Node.js合併到同一個執行時環境中,並將其打包為Mac,Windows和Linux系統下的應用來實

Django 應用開發3

images alt doc include 新的 logs end esp eat 1.編寫第一個視圖 打開polls/view.py 利用一個URLconf將這個視圖映射到URL上。 首先先創建一個urls.py文件 編寫polls/urls.py 編寫m

.Net語言 APP開發平臺——Smobiler學習日誌:在手機應用開發中如何實現跳轉地圖

demo hand 操作 窗體 clas com ps1 ati void 一、目標樣式 我們要實現上圖中的效果,需要如下的操作: 二、跳轉地圖代碼 VB: Private Sub Button1_Click(sender As Object, e As Ev

基於Python的Web應用開發實戰——3 模板

要想開發出易於維護的程式,關鍵在於編寫形式簡潔且結構良好的程式碼。 當目前為止,你看到的示例都太簡單,無法說明這一點,但Flask檢視函式的兩個完全獨立的作用卻被融合在了一起,這就產生了一個問題。   檢視函式的作用很明確,即生成請求的響應。 如第2章中的示例,對簡單的請求來所,這就足夠了。

安卓應用開發3)執行工程

由於Google是官方,所以本系列內容全部是掛外網,請參考者注意。如若打不開,請使用vpn。 Google官方教程 https://developer.android.com/training/basics/firstapp/creating-project 1. 連線硬體

Windows桌面應用程式(1-3-3-1st) WOW64下的效能記憶體消耗

WOW64下的效能和記憶體消耗由以下因素決定: 處理器硬體。指令模擬在晶片上執行。在x64處理器上,x86指令由處理器本機執行。因此,x64下WOW64下的執行速度與32位Windows下的速度相似。在Intel Itanium處理器和任何ARM64處理器上,

基於Qualcomm C-IoT SDK的物聯網開發以及GoKit4應用開發指導-CSDN公開課-專題視訊課程...

基於Qualcomm C-IoT SDK的物聯網開發以及GoKit4應用開發指導—215人已學習 課程介紹         第一階段:MDM9206 LTE IoT調變解調器是一款專為支援全球多模功能而

Electro桌面應用開發之HelloWorld

簡介 Electron (http://http://electron.atom.io‎)提供了一個使用Node.js進行桌面應用開發的環境。 本文介紹了一個基於Electron的HelloWorld應用的開發過程。 第一步: 建立應用原始碼檔案 在本地新建一個HelloWorld目錄, 並建立如下檔案 p

使用 electron-vue 搭建桌面應用開發模板

參考 PicGo 搭建符合本公司需求的桌面應用開發模板 已實現功能: 1.單行命令即可生成可安裝程式 2.使用 nsis 構建安裝嚮導 3.實現檔案的讀寫功能 4.視窗的最小化按鈕和關閉按鈕以及標題欄自定義,不使用 electron 自身攜帶的原生標題欄 5.視窗關閉儲存到托盤

輕量級桌面應用開發的捷徑——nw.js

每個程式設計師都希望用自己喜歡的語言,自己喜歡的平臺、工具,寫自己喜歡的程式。於是我們會看到有人在Win下用Visual Studio愉快地coding,也會看到有人在OS X下用Xcode來開發,或者是用Sublime Text不受平臺限制地玩。 當然了,願望往往是美

Qt Quick應用開發介紹 9(互動式UI)

Chapter9 Interactive UI with Multiple Top-Level Windows 多個頂層視窗下的互動式UI 現在我們的程式需要新增一些方法來變得適合日常工作中的重用; 首先要有個button來退出; 其次, 要有top-lev

加速Java應用開發速度3——單元/整合測試+CI

大家可能對如下情景比較熟悉: 如果開發過SSH的web專案,啟動伺服器可能會比較慢,有的專案甚至需要1分多鐘,甚至更多,這個啟動時間的等待一般就浪費了;在開發專案時,有些功能比較複雜,當時覺得思路特清晰,但是過了一段時間後,自己也忘了,完善功能時頻繁出現bug,降低開發速

Swift + iOS9 應用開發 (1) -- XCode 基本使用UI搭建

Swift是蘋果經過近十年準備而推出的一門程式語言,現在被廣泛用於相關蘋果裝置上的開發。從程式語言網站統計來看,Swift有不斷上升的趨勢。坊間甚至流傳將來Android的開發也會採用Swift語言。筆者經過幾個月的使用,深深希望上了這門語言。 Xcode是蘋果為開發自身產

漸進式web應用開發---使用indexedDB實現ajax本地資料儲存(四)

在前幾篇文章中,我們使用service worker一步步優化了我們的頁面,現在我們學習使用我們之前的indexedDB, 來快取我們的ajax請求,第一次訪問頁面的時候,我們請求ajax,當我們繼續重新整理頁面的時候,我們從快取裡面去讀取該json資料,想要了解indexedDB,請看這篇文章。我們下面的d

鴻蒙系統應用開發之JS實現一個簡單的List

在之前的文章[鴻蒙應用開發之怎麼更好的遠端連線手錶模擬器做除錯](https://harmonyos.51cto.com/posts/1624#bky)裡我運行了一個穿戴裝置的應用,利用JS UI實現了一個最簡單的HelloWorld。 今天我打算在智慧屏裝置上利用豆瓣音樂的介面資料實現一個簡單的List介

Unity應用架構設計(3)——構建ViewViewModel的生命週期

對於一個View而言,本質上是一個MonoBehaviour。它本身就具備生命週期這個概念,比如,Awake,Start,Update,OnDestory等。這些是非常好的方法,可以讓開發者在各個階段去執行自定義的程式碼。但唯一遺憾的事,這些方法是有引擎呼叫,並且顆粒度不夠細。本文將談談怎樣構建View和V

【Android開發】如何實現android伺服器長連線呢?推送訊息的原理

GGSN(Gateway GPRS Support Node 閘道器GPRS支援結點)模組就實現了NAT功能。因為大部分移動無線網路運營商都是為了減少閘道器的NAT對映表的負荷,所以如果發現鏈路中有一段時間沒有資料通訊時,會刪除其對應表,造成鏈路中斷。(關於NAT的作用及其原理可以檢視我的另一篇博文:關於使用

微信小程式開發之radio實現顯示隱藏功能

我們在開發微信小程式的時候,經常會用到顯示和隱藏,但是我們知道在微信小程式裡面是不是能 使用dom操作的,話不多說,直接上程式碼 第一步.直接在wxml,首先在要選擇的按鈕上註冊一個bindtap事件如下圖 第二步.在js中的pages下的data中新增 showView

使用python3.2開發pyramid1.3(安裝環境初始專案)

pylons project在2011年12月10日釋出了pyramid 1.3a1,首次支援了python3.2,因此我在第一時間試用. 系統:linux mint 11(基於ubuntu11.04) 初始環境中沒有python3.X, 只有python2.7,因此需要自