2017-01-11 17 views
2

私はコンボボックスを含むソフトウェアを開発していますが、問題が発生するのはリストをクリックすると大きすぎますすべての項目をスクロールして表示します。qtドロップダウンコンボボックスに最大高さを設定しました(スタイルクリーンルーム)

クリーンビューのスタイルが使用されています(コンボボックスのサイズが大きすぎます)が、変更できないため、最大サイズを設定するソリューションを探しています。

これはウェブ上でもドキュメント内でも見つかりませんでした。

サイズポリシーを使用しようとしましたが、機能しません。私はまた、コンボボックスで使用されるQLineEditを取得しようとし、その上にQSizeを設定し、最後にコンボボックスとQLineEditでスタイルシートを設定することで、正しく動作しませんでした。私はQSIZEとスタイルシートを試してみました何

sz = QSize(20, 20) 
combo.view().setGridSize(sz) 

combo.view().setStyleSheet("""QListView { max-height: 50px; background-color: yellow; } """) 
combo.setStyleSheet("""QComboBox { max-height: 30px; background-color: pink; } """) 

EDIT:@Vladimir Bershovのコメントの後、私が正しくサイズを設定しようとしました:setMaxVisibleItems()が、ドキュメントに言ったように(」注:このプロパティは、QStyle :: SH_ComboBox_Popup "に対してtrueを返すスタイルの編集不可能なコンボボックスでは無視されます)、プロパティは無視されます。

QStyleヒントを修正してSH_ComboBox_Popupの設定を変更しましたが、このpostで説明したように不可能です。

ご意見がありましたらお聞きします。

ありがとうございました。

+0

あなたは[ 'setMaxCount()'](http://pyqt.sourceforge.net/Docs/PyQt4/qcombobox.html#setMaxCount)必要があるように見えるPyQt4には利用可能なソリューションがないコメントで説明しましたまたは['setMaxVisibleItems()'](http://pyqt.sourceforge.net/Docs/PyQt4/qcombobox.html#setMaxVisibleItems) –

+1

私はこれを試しましたが、それは無視されています。私はこれを文書で見ました: "注:このプロパティMacスタイルやGtk +スタイルなど、QStyle :: SH_ComboBox_Popupに対してtrueを返すスタイルの編集不可能なコンボボックスの場合は無視されます。それは理由を説明するかもしれない。私は前に編集可能にコンボボックスを設定してみました。このように私はこの方法を探しています。 – pipou

+1

@pipou。 'QProxyStyle'クラスがPyQt5で利用可能になりました。私はCleanlooksスタイルでそれを試して、 'SH_ComboBox_Popup'のスタイルヒントをオーバーライドしています。 PyQt4でこの問題を修正する方法はありません。 – ekhumoro

答えて

関連する問題