如何将QML中ComboBox的选中内容传递到Python后端
问题原因
QML的ComboBox组件没有直接返回当前选中项内容的text属性,你原代码里调用的dropdown.text返回值为空,所以Python端收不到预期的选项内容。
解决方案
仅需修改QML中Button的点击逻辑,两种写法均可:
写法1:用内置displayText属性(最简单)
直接调用ComboBox自带的displayText属性获取当前选中的展示文本:
Button { // 保留原有样式代码 onClicked { backend.mail(dropdown.displayText) } }
写法2:通过索引取Model值(兼容性更好,适用于后续Model结构复杂的场景)
通过当前选中索引从Model中读取对应值:
Button { // 保留原有样式代码 onClicked { backend.mail(dropdown.model[dropdown.currentIndex]) } }
说明
你现有的Python端Funcy.py代码无需修改,调整后点击按钮即可在Python控制台正常打印选中的Yes或No。
内容的提问来源于stack exchange,提问作者Minimumspace
相关产品推荐
相关产品推荐

