【问题标题】:PyQt5 ComboBox dummy placeholderPyQt5 ComboBox 虚拟占位符
【发布时间】:2020-09-24 05:25:06
【问题描述】:

我碰巧使用了 qcombobox,但找不到添加虚拟占位符的方法(就像我们在 tkinter 中一样)。 例如,我想要的组合框是这样的:

--选择一个--

苹果

香蕉

猕猴桃

我已经有了元素; Apple、Banana、Kiwi 就位,但我希望 --Choose One- 在我点击时消失。

**Tkinter version**

from tkinter import ttk
#---
#some code here
#---
lst = ['Apple','Banana','Kiwi']

self.w0 = ttk.Combobox(self, values = lst, state='readonly')
self.w0.set('--Choose One--') ### This is the functionality that I need
self.w0.pack()

**PyQt version**
from PyQt5 import QtWidgets
lst = ['Apple','Banana','Kiwi']
#---
#some code here
#---
self.comboBox = QtWidgets.QComboBox()
self.comboBox.addItems(lst)
self.layout.addWidget(self.comboBox) ## self.layout is defined but not shown here

### I might add it as an item of the comboBox like
### self.comboBox.addItem('--Choose One--') but it then becomes selectable 
### which I don't want it to.

【问题讨论】:

  • 您指出此功能是在 tkinter 中实现的,而我认为并非如此,您可以将实现该逻辑的代码与 tkinter 一起作为您提供的架构的基础有助于理解它的外观,但并不表明它的行为方式。
  • 是的,你是对的,但代码当然不只包含那部分,但它需要功能。我只是想知道有没有办法实现它,我只是觉得我不必分享其余的代码
  • mmm,您指出:就像我们在 tkinter 中一样,所以我的要求是您提供该代码(涉及 tkinter 的代码)以便将其作为灵感因为我仍然不清楚你的目标。
  • 好吧,我添加了一些行,希望它有助于解决问题。谢谢!

标签: python pyqt5 qcombobox


【解决方案1】:

等效于ttk.Combobox(在示例中)的set()方法是QComboBoxplaceholderText属性:

self.comboBox.setPlaceholderText("--Choose One--")

【讨论】:

  • 返回 QComboBox 对象没有属性错误。我也尝试过这里给出的解决方案:stackoverflow.com/questions/18274508/…
  • @SS93 mmm,你用的是什么版本的pyqt5?该方法适用于 5.15 或更高版本
猜你喜欢
  • 1970-01-01
  • 2011-08-20
  • 2021-08-08
  • 1970-01-01
  • 2020-10-09
  • 2020-06-17
  • 1970-01-01
  • 2011-09-03
  • 2021-02-15
相关资源
最近更新 更多