4

私が作業しているアプリケーションGUIには、ユーザーがアイテムを選択するためのコンボボックスが必要です。アプリケーションが起動すると、コンボボックスの最初の項目ではなく、「選択してください」などのヒントテキストがコンボボックスに表示されます。http://doc.qt.io/qt-5/qcombobox.html#currentText-propにヒントテキストを設定する方法が見つかりません。

少し早いですがお礼を!

4

5 に答える 5

5

が次の場合、エレガントな解決策QComboBoxがありeditableます。

myQComboBox->lineEdit()->setPlaceHolderText("Please select");

QComboBoxeditableそうでないes にはQLineEdits が含まれていないため、これは機能しません。

于 2014-11-06T11:30:13.413 に答える
1

のプレースホルダーテキストを設定する方法はありませんQComboBox。しかし、あなたはこの問題を解決することができます。setEditText( const QString& )テキストを設定するためにスロットを使用します。ユーザーがでアイテムを選択するとcomboBox、アイテムのテキストが設定されます。ただし、ユーザーがテキストを選択して削除し、他のコントロール要素を選択すると(コンボボックスのフォーカスが失われます)、テキストは表示されなくなります。から継承しQComboBox、を再実装することで解決できます。focusOutEvent(...)ここで、次のことを確認しますif ( currentIndex() == -1 ) setEditText( tr( "Please select" ) );QComboBox::focusOutEvent(...)そして、最初に電話することを忘れないでください。

于 2011-06-13T11:49:11.303 に答える