QComboBox - Как установить текст подсказки в поле со списком - PullRequest
3 голосов
/ 13 июня 2011

Для работающего графического интерфейса приложения требуется поле со списком, чтобы пользователь мог выбрать элемент. Когда приложение запускается, поле со списком будет отображать текст подсказки, например, «Пожалуйста, выберите», вместо того, чтобы показывать первый элемент поля со списком. Я не могу найти какой-либо метод для установки текста подсказки в http://doc.qt.io/qt-5/qcombobox.html#currentText-prop.

Спасибо заранее!

Ответы [ 2 ]

4 голосов
/ 06 ноября 2014

Существует элегантное решение , если QComboBox равно editable:

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

QComboBox es, которые не editable, не содержат QLineEdit s, поэтому это не сработает для них.

1 голос
/ 13 июня 2011

Нет способа установить текст заполнителя для QComboBox.Но вы можете решить эту проблему.Используйте слот setEditText( const QString& ) для настройки текста.Если пользователь выбирает элемент в поле со списком, текст элемента будет установлен.Но если пользователь выбирает текст, удаляет его и выбирает другой элемент управления (поле со списком теряет фокус), ваш текст больше не будет там.Его можно решить путем наследования от QComboBox и переопределения focusOutEvent(...), где вы проверяете: if ( currentIndex() == -1 ) setEditText( tr( "Please select" ) );.И не забудьте сначала позвонить QComboBox::focusOutEvent(...).

...