8

私は、オブジェクトディクショナリを取得し、ロボットからストリーミングされる変数をリアルタイムでプロットできるPyQtのアプリケーションに取り組んでいます。これを有効にするために私が取り組んでいることの1つは、ドロップダウンメニューです。残念ながら、数百の変数があるため、クリックすると、画面の上部から下部にPyQtコンボボックスがポップアップ表示されます。一度に表示されるアイテムの数を20に制限し、スクロールして残りを表示できるようにしたいのですが。文書化されたsetMaxVisibleItemsメソッドを使用してみましたが、ドロップダウンにはまったく影響しません。何かお勧めはありますか?

ここにコード:

#!/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_())
4

1 に答える 1

9

ドキュメントによると:

MacスタイルやGtk+スタイルなどの`QStyle:: SH_ComboBox_Popupに対してtrueを返すスタイルの編集不可能なコンボボックスでは、このプロパティmaxVisibleItemsは無視されます。

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

combo.setStyleSheet("QComboBox { combobox-popup: 0; }");
于 2012-06-28T23:53:02.997 に答える