私が作業しているアプリケーションGUIには、ユーザーがアイテムを選択するためのコンボボックスが必要です。アプリケーションが起動すると、コンボボックスの最初の項目ではなく、「選択してください」などのヒントテキストがコンボボックスに表示されます。http://doc.qt.io/qt-5/qcombobox.html#currentText-propにヒントテキストを設定する方法が見つかりません。
少し早いですがお礼を!
私が作業しているアプリケーションGUIには、ユーザーがアイテムを選択するためのコンボボックスが必要です。アプリケーションが起動すると、コンボボックスの最初の項目ではなく、「選択してください」などのヒントテキストがコンボボックスに表示されます。http://doc.qt.io/qt-5/qcombobox.html#currentText-propにヒントテキストを設定する方法が見つかりません。
少し早いですがお礼を!
が次の場合、エレガントな解決策QComboBox
がありeditable
ます。
myQComboBox->lineEdit()->setPlaceHolderText("Please select");
QComboBox
editable
そうでないes にはQLineEdit
s が含まれていないため、これは機能しません。
のプレースホルダーテキストを設定する方法はありませんQComboBox
。しかし、あなたはこの問題を解決することができます。setEditText( const QString& )
テキストを設定するためにスロットを使用します。ユーザーがでアイテムを選択するとcomboBox
、アイテムのテキストが設定されます。ただし、ユーザーがテキストを選択して削除し、他のコントロール要素を選択すると(コンボボックスのフォーカスが失われます)、テキストは表示されなくなります。から継承しQComboBox
、を再実装することで解決できます。focusOutEvent(...)
ここで、次のことを確認しますif ( currentIndex() == -1 ) setEditText( tr( "Please select" ) );
。QComboBox::focusOutEvent(...)
そして、最初に電話することを忘れないでください。