QComboBox - 如何在组合框上设置提示文本

fuc*_*116 4 qt qcombobox

我工作的应用程序 GUI 需要一个组合框供用户选择项目。当应用程序启动时,组合框将显示类似于“请选择”的提示文本,而不是显示组合框的第一项。我在http://doc.qt.io/qt-5/qcombobox.html#currentText-prop 中找不到任何设置提示文本的方法。

预先感谢!

nwp*_*nwp 5

如果是,则有一个优雅的解决方案QComboBoxeditable

myQComboBox->lineEdit()->setPlaceHolderText("Please select");
Run Code Online (Sandbox Code Playgroud)

QComboBoxES是不是editable没有QLineEditS IN他们,所以这不会对那些工作。


Pie*_*esu 1

无法设置 的占位符文本QComboBox。但你可以解决这个问题。使用setEditText( const QString& )插槽来设置文本。如果用户在 中选择一个项目comboBox,则该项目的文本将被设置。但是,如果用户选择文本,删除它,然后选择其他控制元素(组合框失去焦点),您的文本将不再存在。可以通过继承QComboBox并重新实现来解决focusOutEvent(...),您可以在其中检查:if ( currentIndex() == -1 ) setEditText( tr( "Please select" ) );。并且不要忘记QComboBox::focusOutEvent(...)先打电话。