获取 QComboBox 的所有项目 - PyQt4 (Python)
我有很多 QComboBox
,在某个时刻,我需要获取特定 QComboBox
的每个项目进行迭代。
虽然我可以只有一个与 QComboBox 中的项目相对应的项目列表,但我宁愿直接从小部件本身获取它们(有大量的 QComboBoxes) > 每个都有很多项目)。
有没有任何函数/方法可以为我做到这一点?
(例如
QComboBoxName.allItems()
:)
我浏览了课程参考但找不到任何相关内容。
我想了一些乱七八糟的方法,但我不喜欢它们。
(就像通过更改索引并获取项目等来迭代 QComboBox 一样)。
Python 2.7.1
空闲 1.8
Windows 7
PyQt4
I have A LOT of QComboBoxes
, and at a certain point, I need to fetch every item of a particular QComboBox
to iterate through.
Although I could just have a list of items that correspond to the items in the QComboBox
, I'd rather get them straight from the widget itself (there are a huge amount of QComboBoxes
with many items each).
Is there any functions / methods that will do this for me?
(Eg:
QComboBoxName.allItems()
)
I've looked through the class reference but couldn't find anything relevant.
I've thought of a few messy methods, but I don't like them.
(Like iterating through the QComboBox
by changing the index and getting the item, etc).
Python 2.7.1
IDLE 1.8
Windows 7
PyQt4
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
基于已接受的答案,您实际上可以使用
combo_box.allItems()
为组合框提供一个可调用的 method ,方法是:我相信它必须在范围内完成其中
combo_box
诞生,否则setattr
失败。在 PyQt5 和 Python 3.7 中测试。
Building on the accepted answer, you can actually give you combobox a method callable using
combo_box.allItems()
, by doing this:I believe it has to be done in the scope where
combo_box
was born, otherwisesetattr
fails.Tested in PyQt5 and Python 3.7.
据我所知,您可以使用
.itemText()
引用一个项目:As far as I can tell, you can just reference an item using
.itemText()
: