QComboBox一个奇怪的现象

王桑的一天 2019-04-03 11:20:01
我有几个QComboBox, 他们是关联的,即前一个combox的选项,决定下一个combox可选内容

现在想实现,这些combox逐个选中某一个值,就像人为操作的那样。

因为是关联的,所以得一个一个选,链式的,要等待下一个的可选项添加完成,再setCurrentIndex

setCurrentIndex 会触发 currentIndexChanged 信号,想以此还达到链式选择的目的


self.completed.connect(self.selectOne)

....

#添加选项
def appendItems(self, result):
for item in result:
self.combobox.addItem(item)

self.completed.emit() #发信号通知选项添加完成

# 选项添加完成后选中一个
def selectOne(self):
print(self.combobox.count()) #这里会输出0
for i in range(self.combobox.count()):
if i == 3:
self.combobox.setCurrentIndex(i)



我是想在添加完QComboBox的项后,completed 触发,selectOne函数选中其中一个值。

但是实际情况是selectOne触发时,combobox里的项还是0,这是单线程,为什么selectOne已经触发 了,combobox里的项还没添加好??

我的这个需求这么操作对不对?
...全文
402 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
王桑的一天 2019-04-03
  • 打赏
  • 举报
回复
原因找到了。。。是因为我调用了combobox.clear() ,多触发了一次selectOne, 那时候还无选项,所以看起来好像先执行了selectOne

16,818

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧