2012-06-28 103 views
5

PyQtのアプリケーションでは、オブジェクト辞書を使用してリアルタイムでロボットからのストリーミングをプロットすることができます。私がこれを可能にするために取り組んでいることの1つは、ドロップダウンメニューです。残念ながら、私たちは数百の変数を持っているので、私のPyQt Comboboxは、クリックしたときにアイテムの画面の一番上から下にポップアップします。私は一度に表示されるアイテムの数を20に制限し、残りを見るためにスクロールする機能を備えたいと思います。私は文書化されたsetMaxVisibleItemsメソッドを使ってみましたが、ドロップダウンには全く影響しません。どんな勧告?ここPyQt QComboBoxドロップダウンリストに表示される項目の数を設定する

コード:

#!/usr/bin/env python 

from PyQt4.QtCore import Qt 
from PyQt4.QtGui import QComboBox, QApplication 

from cli.parc2_od import cli_od 
import sys 

app = QApplication(sys.argv) 

items = cli_od.OD.keys() #Items to populate dropdown. 
combo = QComboBox() 

#The solution: 
combo.setStyleSheet("QComboBox { combobox-popup: 0; }") 
combo.setMaxVisibleItems(10) 




combo.addItems(items) 

combo.resize(300, 30) 
combo.show() 


sys.exit(app.exec_()) 

答えて

7

ドキュメントによると:プロパティmaxVisibleItemsは、マックのスタイルやGtkのよう`QStyle::SH_ComboBox_Popupについてtrueを返すスタイルで編集不可能なコンボボックスでは無視され

+スタイル。

そして、あなたは、スタイルシートでそのSH_ComboBox_Popupスタイルのヒントを上書きすることができます。

combo.setStyleSheet("QComboBox { combobox-popup: 0; }"); 
関連する問題