2011-06-10 52 views
0

我在圖標模式下有一個Qlistwidget,並且我正在使用setItemWidget在我的自定義小部件中顯示我的元素,到目前爲止這工作正常。帶有自定義小部件的qlistwidgetitem在UI上看起來沒有選擇

差不多是像這樣的:

https://stackoverflow.com/questions/3639468/what-qt-widgets-to-use-for-read-only-scrollable-collapsible-icon-list

我唯一的問題是,當我選擇的項目,他們不看選擇(無邊框周圍)。他們正在被選中,因爲我獲得了正確的信號,但您無法在用戶界面上看到選擇。 關於如何使它們出現選擇的任何想法?

**修改以添加樣本代碼**

(它是在以前的鏈接上找到的代碼的修改)

import sys 
from PyQt4 import QtGui, QtCore 

class displayItem(QtGui.QWidget): #A simple widget to display, just centers a digit in a 100x100 widget 
    def __init__(self,num): 
     QtGui.QWidget.__init__(self) 
     self.size=100 
     self.resize(self.size,self.size) 
     self.setMinimumSize(self.size,self.size) 
     self.text = num 
    def paintEvent(self,event): 
     p = QtGui.QPainter(self) 
     p.drawText(self.size//2,self.size//2,str(self.text)) 


app = QtGui.QApplication(sys.argv) 

#Build the list widgets 

list1 = QtGui.QListWidget()    #This will contain your icon list 
list1.setMovement(QtGui.QListView.Static) #otherwise the icons are draggable 
list1.setResizeMode(QtGui.QListView.Adjust) #Redo layout every time we resize 
list1.setViewMode(QtGui.QListView.IconMode) #Layout left-to-right, not top-to-bottom 

listItem = QtGui.QListWidgetItem(list1) 
listItem.setSizeHint(QtCore.QSize(100,100)) #Or else the widget items will overlap (irritating bug) 
list1.setItemWidget(listItem,displayItem(1)) 

listItem = QtGui.QListWidgetItem(list1)  #Add a few more items 
listItem.setSizeHint(QtCore.QSize(100,100)) 
list1.setItemWidget(listItem,displayItem(2)) 

listItem = QtGui.QListWidgetItem(list1) 
listItem.setSizeHint(QtCore.QSize(100,100)) 
list1.setItemWidget(listItem,displayItem(3)) 


list1.show()   #kick off the app in standard PyQt4 fashion 
sys.exit(app.exec_()) 

由於

/J

+0

如果沒有看到一些代碼,很難說出問題所在。只是一個瘋狂的猜測。如果您在鏈接中關注該示例,是否記得在列表項上設置「setSizeHint」?如果沒有,你的圖標可能會比你的listWidgetItems大。 – 2011-06-10 18:29:53

+0

是的,我正在設置它,我也試過把它放在比widget更大的位置,但它也不起作用。 – Jose 2011-06-10 21:57:14

+0

我無法弄清楚。它與設置IconMode有關。它可能與我發現的Qt錯誤報告有關,但將QStyle設置爲CleanLooks之外的其他項並沒有解決問題。 http://bugreports.qt.nokia.com/browse/QTBUG-5141 – 2011-06-11 00:43:45

回答

2

是。 。 它與viewMode有關。 當我設置viewMode的列表1爲ListMode,選擇的項目看選擇(高亮)

list1.setViewMode(QtGui.QListView.ListMode) 

仍在試圖弄清楚爲什麼它不與iconMode工作。 。 。

相關問題