QComboBox调整下拉宽度

时间:2016-06-04 17:01:28

标签: python pyqt pyqt4 qcombobox

不知道为什么我不能让它工作,所以也许你们中的一个人能够看到我的错误......:

combo_type = QComboBox()
combo_type.setMaximumWidth(50)
combo_type.addItems(["TEsst1111","TEsst11111111111111","TEsst1111111111111111111111111"])
combo_type.setStyleSheet('''*
    QComboBox QAbstractItemView::item
    {
    min-width: 6000px;
    }
''')

这个想法是这样的,UI中的小部件有50个宽度但是当下拉和打开时我可以读取列表,遗憾的是样式表覆盖不会改变下拉宽度,使其变为50并且不可读...

感谢。

2 个答案:

答案 0 :(得分:3)

排序......这是命名错误。正确的答案发布在下面。

combo_type.setStyleSheet('''*    
QComboBox QAbstractItemView 
    {
    min-width: 150px;
    }
''')

答案 1 :(得分:1)

使用QListView

combo_type = QComboBox()
combo_type.SizeAdjustPolicy(QComboBox.AdjustToContentsOnFirstShow)

view =  QListView() # creat a ListView
view.setFixedWidth(200) # set the ListView with fixed Width
combo_type.setView(view) # provide the list view to Combobox object

combo_type.setMaximumWidth(500) # will be overwritten by style-sheet
            combo_type.addItems(["TEsst1111","TEsst11111111111111","TEsst1111111111111111111111111"])
combo_type.setStyleSheet('''
QComboBox { max-width: 50px; min-height: 40px;}
QComboBox QAbstractItemView::item { min-height: 150px;}
QListView::item:selected { color: red; background-color: lightgray; min-width: 1000px;}"
''')