成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

去掉view項的焦點虛線框的方法memo

移動開發
我們曾經介紹過如何定義Android View類,Qt中的View類,如QListView, 在其項被選中時會有一個焦點虛線框表示焦點的位置。 不知道為啥,這個焦點虛線框很不招人待見, 筆者至今已經遇到多例想要去掉該虛線框的問題。

【51CTO編者按】我們曾經介紹過如何定義Android View類,Qt中的View類,如QListView, 在其項被選中時會有一個焦點虛線框表示焦點的位置。 不知道為啥,這個焦點虛線框很不招人待見, 筆者至今已經遇到多例想要去掉該虛線框的問題。

筆者能想到的有兩個方法, memo如下:

使用QItemDelegate子類

對QItemDelegate這個類筆者在此不多做討論, 詳情參考Qt文檔。 簡單來說,這個類可以控制view中的項的繪制方式,其中包括焦點虛線框的繪制。 而且焦點虛線框的繪制被封裝在一個虛函數中, 所以通過派生QItemDelegate就可以重新定義該函數的功能 — 如什么都不畫。 具體對應的虛函數是:http://qt.nokia.com/doc/4.6/qitemdelegate.html#drawFocus

有了QItemDelegate的子類后,我們需要調用QAbstractItemView的setItemDelegate方法將我們的item delegate與view關聯。 這個itemdelegate可以為view全局有效,或針對某個item, 也可以調用setItemDelegateForRow/Column設置針對行或列有效的delegate。

使用QStyle子類

這個方法的作用原理和第一種方法基本一致, 因為QItemDelegate的drawFocus函數調用QStyle的drawPrimitive虛函數去做實際的繪制, 所以如果我們重新定義這個繪制過程能達到同樣的效果。 drawPrimitive函數負責繪制非常基本的界面元素, 根據傳入的參數判斷需要繪制的元素, 具體到本例就是要針對PE_FrameFocusRect元素做特殊處理。 例子代碼如下:

  1. class NoFocusRectangleStyle: public QCommonStyle  
  2. {  
  3. public:  
  4. ...  
  5. void NoFocusRectangleStyle::drawPrimitive(PrimitiveElement element, const QStyleOption *option,  
  6. QPainter *painter, const QWidget *widget) const  
  7. {  
  8. if (QStyle::PE_FrameFocusRect == element && widget && widget->inherits("QListWidget"))  
  9. return;  
  10. else  
  11. QCommonStyle::drawPrimitive(element, option, painter,  
  12. widget);  
  13. }  
  14. };  
  15.  

一般我們派生QStyle不會傻乎乎地去派生這個基本的基類, 更常見的是派生與我們需要的風格最接近的類,一般是我們的程序默認使用的類。 我們的派生類可能非常簡單, 只重寫drawPrimitive這么一個函數, 幾行代碼搞定。 使用方法是調用QApplication::setStyle, 或者QWidget::setStyle, 前者將style效果應用到程序中的所有窗體,后者將效果限制在當前窗體。

小小memo, 希望對廣大Qter有所幫助。 如果大家有其他方法歡迎留言。

【編輯推薦】

  1. Qt程序進入等待睡眠的正確方法
  2. Qt開發:釋放線程中創建的QUdpSocket對象
  3. QTreeWidget設計解決沒有拖動項問題
  4. 在QT SDK下構建MeeGo Touch開發環境
  5. QtCreator:MeeGo開發程序入門手冊

原文地址:http://www.cuteqt.com/blog/?p=2008

責任編輯:佚名 來源: cuteqt
相關推薦

2017-12-28 14:51:01

AndroidView焦點

2016-12-12 09:58:47

AndroidAndroid Vie

2021-02-26 13:20:48

Shell空行Linux

2012-01-06 09:30:44

繪圖線框圖開發

2024-06-19 08:32:13

2023-10-18 15:21:23

2022-05-19 15:59:23

組件焦點鴻蒙

2020-05-12 10:32:25

Python列表重復

2017-05-18 08:54:39

2009-09-08 16:22:27

c# listBox

2022-09-16 12:30:23

新指令項目Vue3

2019-12-18 16:17:29

WindowsWindows 10軟件

2011-05-18 16:26:22

線框

2015-12-08 13:25:39

2019-10-31 10:16:06

數據Python開發

2021-04-14 10:59:28

JavaScript 前端this

2017-10-31 11:55:46

sklearn數據挖掘自動化

2020-04-16 10:46:34

云計算多云架構數據中心

2013-10-30 17:10:29

設計師工具

2021-03-16 10:00:40

JavaScript用戶登錄表單JavaScript基
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 谁有毛片 | 国产精品69毛片高清亚洲 | 免费看一级毛片 | 午夜欧美日韩 | 在线免费观看毛片 | www.日韩 | 日韩在线精品 | 一级日韩| 国产最好的av国产大片 | 国产精品一区二区三区在线 | www.99精品| 亚洲精品乱码久久久久久按摩观 | 成人激情视频免费观看 | 黄色大片视频 | 国产精品精品视频一区二区三区 | 久久精品国产一区 | 亚洲一区二区视频在线观看 | 亚洲福利一区二区 | 一二三区av | 羞羞视频在线观免费观看 | 91秦先生艺校小琴 | 欧美九九 | 欧美中文在线 | 欧洲毛片| 欧美成人一区二区三区 | 亚洲黄色一级毛片 | 精品福利视频一区二区三区 | 亚洲国产一区二区在线 | 秋霞a级毛片在线看 | 一区二区视频在线 | 精品无码久久久久久国产 | 国产成人精品一区二区三 | 久久久综合精品 | 久久精品国产一区二区电影 | 日本成人在线观看网站 | m豆传媒在线链接观看 | 日韩国产在线观看 | 日日天天 | 国产成人免费一区二区60岁 | 国产男女视频网站 | 欧美综合久久久 |