我在QListWidget中有一個QListWidgetItem的列表(由於數量巨大,Hor滾動條在那裏)。每個QListWidgetItem都包含一個QPixmap作爲數據(縮小到某個隨機值)。我的要求是當點擊一個QPixmap時應該突出顯示(刷寬爲10的四捨五入)。我將每個QListWidgetItem委託給一個QItemDelegate。我在這裏有幾個問題。在QListWidget的QPixmap上繪畫
如何在選擇相應的QListWidgetItem時繪製QPixmap的圓角矩形?
當點擊QPixmap(不在QListWidgetItem的其他部分)時,上述繪製事件應該會發生。由於QPixmaps大小不同,QListWidgetItem中的QPixmaps的頂部和底部部分將爲空,並且單擊此處也會觸發ItemDelegate。如何擺脫這種選擇?
感謝您的答覆。我也在ListWidget中做了這樣的事情。在Delegate :: paint()方法中將修改後的Qpixmap繪製到listItem中時,我們需要給出繪製QPixmap的座標。我的問題是如何找到這些座標,因爲我的QPixmap是居中對齊的。 option.rect()。x()和y()給出項目的左上角座標值。有沒有辦法讓繪畫中心對齊?還是我們需要手動計算? – 2012-03-08 07:03:30
我很難弄清楚你在做什麼:-)也許你可以更具體地說明你在用QPixmap做什麼以及爲什麼你需要座標。 – 2012-03-08 10:52:10
讓我告訴我的實際問題。在每個listItem中我有一個QPixmap。每個QPixmap的大小都是可變的。如果我點擊listItem,相應的圖片應該以這樣的方式突出顯示,即必須圍繞該圖片繪製圓角矩形。 因此,在委託繪畫方法中,我獲取數據(QPixmap)並在其周圍繪製圓角矩形。然後我想在中心對齊的ListWidgetItem上繪製更新後的QPixmap。爲了繪製QPixmap,我們需要指定QRect。無論如何,我們可以手動計算中心對齊的幾何圖形,但我想知道是否有更好的方法 – 2012-03-08 13:50:59