作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在编写一个小程序,它使用 Qt5 QML 作为 GUI 层和 Python3-PyQt5 来实现数据模型。
我现在想在 QML 中显示一个 ComboBox
并将其模型设置为枚举列表。我如何将枚举导出为 python 类的属性,以便我可以在 QML 中引用它?
我最好用 QML 写这个:
ComboBox {
model: mymodel.car_manufacturers
onCurrentIndexChanged: mymodel.selected_manufacturer = currentIndex
}
最佳答案
这是我的解决方案,对我来说已经足够好了。在 python 代码中,我有以下内容:
class CarManufacturers(enum.Enum):
BMW, Mercedes = range(2)
mfcChanged = pyqtSignal()
@pyqtProperty('QStringList', constant=True)
def carmanufacturers(self):
return [mfc.name for mfc in CarManufacturers]
@pyqtProperty('QString', notify=mfcChanged)
def mfc(self):
return str(CarManufacturers[self._mfc].value)
@modus.setter
def mfc(self, mfc):
print('mfc changed to %s' % mfc)
if self._mfc != CarManufacturers(int(mfc)).name:
self._mfc = CarManufacturers(int(mfc)).name
self.mfcChanged.emit()
在 QML 中我有:
ComboBox {
model: myModel.carmanufacturers
currentIndex: myModel.mfc
onCurrentIndexChanged: myModel.mfc = currentIndex
}
关于python - 我想将 Qt QML Combobox 设置为 PyQt5 对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28517132/
使用登录后,我想吐出用户名。 但是,当我尝试单击登录按钮时, 它给了我力量。 我看着logcat,但是什么也没显示。 这种编码是在说。 它将根据我在登录屏幕中输入的名称来烘烤用户名。 不会有任何密码。
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎是题外话,因为它缺乏足够的信息来诊断问题。 更详细地描述您的问题或include a min
我是一名优秀的程序员,十分优秀!