1. 程式人生 > >Qt 學習之路 2(86):QML檢視代理

Qt 學習之路 2(86):QML檢視代理

與 Qt model/view 架構類似,在自定義使用者介面中,代理扮演著重要的角色。模型中的每一個數據項都要通過一個代理向用戶展示,事實上,使用者看到的可視部分就是代理。

每一個代理都可以訪問一系列屬性和附加屬性。這些屬性及附加屬性中,有些來自於資料模型,有些則來自於檢視。前者為代理提供了每一個數據項的資料資訊;後者則是有關檢視的狀態資訊。

代理中最常用到的是來自於檢視的附加屬性ListView.isCurrentItemListView.view。前者是一個布林值,用於表示代理所代表的資料項是不是檢視所展示的當前資料項;後者則是一個只讀屬性,表示該代理所屬於的檢視。通過訪問檢視的相關資料,我們就可以建立通用的可複用的代理,用於適配檢視的大小和展示特性。下面的例子展示了每一個代理的寬度都繫結到檢視的寬度,而代理的背景色則根據附加屬性ListView.isCurrentItem

的不同而有所不同。

123456789101112131415161718192021222324252627282930313233343536373839404142434445import QtQuick2.0Rectangle{width:120height:300gradient:Gradient{GradientStop{position:0.0;color:"#f6f6f6"}GradientStop{position:1.0;color:"#d7d7d7"}}ListView{anchors.fill:parentanchors.margins:20clip:truemodel:100delegate
:numberDelegatespacing:5focus:true}Component{id:numberDelegateRectangle

相關推薦

Qt 學習 286QML檢視代理

與 Qt model/view 架構類似,在自定義使用者介面中,代理扮演著重要的角色。模型中的每一個數據項都要通過一個代理向用戶展示,事實上,使用者看到的可視部分就是代理。 每一個代理都可以訪問一系列屬性和附加屬性。這些屬性及附加屬性中,有些來自於資料模

Qt 學習 240隱式數據共享

深拷貝和淺拷貝 != 這樣的 pointer map painter pos 轉載 多線程 博客轉載自:https://www.devbean.net/2013/01/qt-study-road-2-implicit-sharing/ Qt 中許多 C++ 類使用了隱式數據

Qt 學習 242QListWidget、QTreeWidget 和 QTableWidget

上一章我們瞭解了 model/view 架構的基本概念。現在我們從最簡單的QListWidget、QTreeWidget和QTableWidget三個類開始瞭解最簡單的 model/view 的使用。這部分內容的確很難組織。首先,從最標準的 model/view 開始,往往會糾結於複雜的程式碼;但是

Qt 學習之路 2(19):事件的接受與忽略當重寫事件回撥函式時,時刻注意是否需要通過呼叫父類的同名函式來確保原有實現仍能進行!有好幾個例子。為什麼要這麼做?而不是自己去手動呼叫這兩個函式呢?因為我們無法確認父類中的這個處理函式有沒有額外的操作

版本: 2012-09-29 2013-04-23 更新有關accept()和ignore()函式的相關內容。 2013-12-02 增加有關accept()和ignore()函式的示例。 上一章我們介紹了有關事件的相關內容。我們曾經提到,事件可以依情況接受和忽略。現在,我們就

Qt 學習 226反走樣

我們在光柵圖形顯示器上繪製非水平、非垂直的直線或多邊形邊界時,或多或少會呈現鋸齒狀外觀。這是因為直線和多邊形的邊界是連續的,而光柵則是由離散的點組成。在光柵顯示裝置上表現直線、多邊形等,必須在離散位置取樣。由於取樣不充分重建後造成的資訊失真,就叫走樣;用於減少或消除這種效

Qt 學習 289Canvas

變換 Canvas中的“變形”,主要指的是座標系的變換,而不是路徑的變換。這與 QML 元素變換非常相似,都可以實現座標系統的scale(縮放)、rotate(旋轉)和translate(平移);不同的是,變換的原點是畫布原點。例如,如果以一個路徑的中心點為定點

Qt 學習 238儲存容器

儲存容器(containers)有時候也被稱為集合(collections),是能夠在記憶體中儲存其它特定型別的物件,通常是一些常用的資料結構,一般是通用模板類的形式。C++ 提供了一套完整的解決方案,作為標準模板庫(Standard Template Library

學習-RabbitMQMac安裝RabbitMQ

1.安裝: RabbitMQ:brew install rabbitmq 2.RabbitMQ的安裝位置: /usr/local/Cellar/rabbitmq/3.7.9 3.配置環境變數: cd~ vi .bash_profile export RABBIT_HOME=/usr/loca

學習-RabbitMQ什麼是RabbitMQ

** RabbitMQ ** MQ全稱為Message Queue,即訊息佇列, RabbitMQ是由erlang語言開發,基於AMQP(Advanced Message Queue 高階訊息佇列協議)協議實現的訊息佇列,它是一種應用程式之間的通訊方法,訊息佇列在分散式系統開 發中應

學習-RabbitMQSpringBoot整合RabbitMQ

一:引入RabbitMQ的相關jar包: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp

學習-RabbitMQRabbitMQ的工作模式

RabbitMQ有以下幾種工作模式 : 1、Work queues 工作佇列 2、Publish/Subscribe 釋出訂閱模式 3、Routing 路由模式 4、Topics 萬用字元模式 5、Header 6、RPC 一:Work queues 工作佇列 work queues與

學習-RabbitMQRabbitMQ的入門程式

1.建立maven工程 2.分別在兩個工程中匯入依賴 <dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp‐client</artifactId>

Qt學習一個簡單的時鐘

  今天開始接觸了qt,剛開始為了搭環境,找qt create找了好久,網上不怎麼好找,找了一個晚上才找到的,先把資源分享一下給大家。   QTSDK分享     http://pan.baidu.c

QT學習十三基於Linux qt的聊天室

  前天將Windows下的聊天室改版了,但是我昨天才發現那個版本有一個缺陷,一個我一開始沒有注意到的錯誤,直到昨天除錯的時候才發現,就是我資料傳輸的時候是用std::string型別的,一開始是為了

STM32學習-LCD4&lt;顯示字符&gt;

計算 ack 字節 ring oid ng- 透明 標點符號 函數 昨晚瘋狂的打了一夜的LOL,感覺L多了,今天一天精神萎靡.還是繼續把顯示字符給看了,可是在猶豫要不要寫這篇文章 事實上寫的東西也就是copy別人家的代碼,不想寫那麽多,就記錄下自己困惑的地方吧.也

Linux學習--Mariadb3基本使用操作【20】---20180123

result run page 提高 進行 組成 varchar alias pan 一、MariaDB程序1、MariaDB的程序組成Client mysql:CLI交互式客戶端程序 mysqldump,mysqladmin...Server mysq

Linux學習-Nginx1介紹篇【22】---20180206

Nginx架構介紹 I/O介紹 一、Nginx介紹Nginx:engine X ,2002年,開源,商業版http協議:web服務器(類似於httpd)、http reverse proxy(類似於httpd)、imap/pop3 reverse proxy,tcpNGINX is a free, o

Linux學習-Nginx4模塊簡要介紹篇【27】---20180228

ngx_http_proxy_modu ngx_http_headers_mo ngx_http_fastcgi_mo 一、ngx_http_proxy_module模塊ngx_http_proxy_module轉發請求至另一臺主機1、proxy_pass URL;Context:location

Linux學習-虛擬化1介紹20180303

虛擬化一、虛擬化:Virtualization 虛擬化技術類型: 主機虛擬化:xen, kvm, virtualbox, … (缺陷就是總是有一層內核的管理) 容器(用戶空間隔離): lxc(LinuX Container), openvz, …

Day1----Python學習筆記1

文件名 常見 python3 3.2 HP lob 計算機硬件 至少 數字 學習路線 Day1    Day2    Day3    Day4    Day5    ...待續     一、了解開發語言   1、高級語言:Python,Java,C++,C#,PHP,