如何从 qcombobox 获取 itemdata?

2023-12-01

当我单击 QtWidgets.QPushButton 以显示 QtWidgets.QComboBox 中的 itemData 时,出现问题。我用以下代码填充我的组合框:

self.comboBox.addItem("Sandro",1)
self.comboBox.addItem("Daniel",2)
self.comboBox.addItem("Pedro",3)

它填充了 QtWidgets.QComboBox,但是当我设置 QtWidgets.QPushButton 时出现问题。我在 setupUi 中添加了这个:

self.pushButton.clicked.connect(self.showId)

最后开发了showId函数:

id_us = self.comboBox.itemData(self.comboBox.currentIndex())
print('VAL ',id_us)

当我单击按钮时,窗口关闭,出了什么问题? 我分享我的accessForm.py的所有代码:

# -*- coding: utf-8 -*-
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(598, 245)
        self.groupBox = QtWidgets.QGroupBox(Form)
        self.groupBox.setGeometry(QtCore.QRect(10, 20, 541, 201))
        self.groupBox.setObjectName("groupBox")
        self.pushButton = QtWidgets.QPushButton(self.groupBox)
        self.pushButton.setGeometry(QtCore.QRect(50, 150, 75, 23))
        self.pushButton.setObjectName("pushButton")
        self.label = QtWidgets.QLabel(self.groupBox)
        self.label.setGeometry(QtCore.QRect(40, 30, 47, 13))
        self.label.setObjectName("label")
        self.comboBox = QtWidgets.QComboBox(self.groupBox)
        self.comboBox.setGeometry(QtCore.QRect(110, 30, 111, 22))
        self.comboBox.setObjectName("comboBox")
        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)
        self.fillCombo()
        self.pushButton.clicked.connect(self.showId)
    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Form"))
        self.groupBox.setTitle(_translate("Form", "Datos"))
        self.pushButton.setText(_translate("Form", "Inicio"))
        self.label.setText(_translate("Form", "TextLabel"))
    def showId(self):
        id_us = self.comboBox.itemData(self.comboBox.currentIndex()).toPyObject()
        print('VAL ',id_us)
    def fillCombo(self):
        self.comboBox.addItem("Sandro",1)
        self.comboBox.addItem("Daniel",2)
        self.comboBox.addItem("Pedro",3)
if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    Form = QtWidgets.QWidget()
    ui = Ui_Form()
    ui.setupUi(Form)
    Form.show()
    sys.exit(app.exec_())

提前致谢。


在我看来,您正在使用过时的教程,在 PyQt4 中,您必须使用以下命令将 PyQt 对象转换为 python 本机对象toPyObject()方法,但在 PyQt5 中不再需要:

def showId(self):
    id_us = self.comboBox.itemData(self.comboBox.currentIndex()) # .toPyObject()
    print('VAL ',id_us)

建议使用终端或 CMD 来获取错误消息,因为 IDE 在处理 PyQt 错误消息时存在问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 qcombobox 获取 itemdata? 的相关文章

随机推荐

  • 采用材料设计的自定义搜索栏

    我在布局中有一个搜索栏 用于自定义对话框首选项 我更改了 styles xml 以使用新的材质设计 它之所以有效 是因为它更改了我的设置的文本和复选框 但我无法将颜色应用到我的搜索栏 仅当我在活动中放置搜索栏时它才有效 这意味着我必须在自定
  • 将每小时的动物园时间序列输入函数 stl()

    在你问之前 是的 我需要显示这么多数据 stl 需要两个周期的数据 在本例中 一个周期有 24 个值 因此 stl 至少需要 48 个值 另外 来自 stl 帮助 这应该是 ts 类的对象 其频率大于 1 我正在升级一些旧的计算 以便我的数
  • 如何在 Angular 中将输入值作为参数传递给路由器

    我相信我想做的事情是微不足道的 但我尝试了很多不同的事情 但无法弄清楚 我有两个组件 SearchComponent and DetailsComponent显示搜索结果 路线模块 const routes Routes path comp
  • 后台工作进程还是线程?

    我有一个 Winform 应用程序 它在网格视图中列出了一批发票 用户选择批次并单击 生成发票 按钮 该过程大约需要 4 5 分钟 当它运行时 我将有一个选框进度条 并且想禁用所有按钮 我应该使用后台工作进程还是创建一个新线程来运行此任务
  • 使用具有特定标识的应用程序池运行 ASP.net 项目会产生“(403) Forbidden”

    尝试从 Visual Studio 启动 ASP net 项目时收到此错误消息 它不运行 Unable to start debugging on the web server The remote server returned an e
  • 检测android中启动了哪个应用程序

    如何检测用户在我的应用程序中启动了哪个应用程序 即当用户启动 Whatsapp 时 即使我的应用程序没有在前台或后台运行 我的应用程序也应该收到通知 远足信使通过无障碍服务实现了相同的功能 我怎么解决这个问题 提前致谢 根据运行应用程序的
  • 为什么 Cocoa-Touch 类 ivars 具有前导下划线字符?

    这次会议有什么目的吗 有一些开发人员使用以下约定通过以下方法 隐藏 ivars interface private NSString myString property nonatomic retain NSString myString
  • 如何在 Unity 检查器中根据其他变量值隐藏变量

    我如何根据统一检查器中的其他变量值隐藏变量 基本上想象一下 如果我有一个名为 CanSprint 的布尔值和一个名为 SprintSpeed 的浮点数 那么我想这样做 以便当布尔值为真时 浮点数显示 但当布尔值为假时 浮点数隐藏 这只是为了
  • java.lang.IllegalStateException:尝试重新打开已经关闭的对象

    我试图弄清楚为什么我偶尔会收到 IllegalStateException 我找不到任何好的示例来展示如何使用线程加载列表来查询 SQLite 数据库 我在下面包含了我的代码 大多数时候它工作正常 但偶尔我会收到 IllegalStateE
  • 如何在 jQuery UI 自动完成中实现“mustMatch”和“selectFirst”?

    我最近从 制作的插件中迁移了一些自动完成插件贝斯斯坦斯 to the jQuery UI 自动完成 如何仅使用回调和其他选项来实现 mustMatch 和 selectFirst 而不修改核心自动完成代码本身 我想我解决了这两个功能 为了让
  • 用普通的 ascii 字符替换重音字符[重复]

    这个问题在这里已经有答案了 我需要将姓氏列表转换为字母数字用户名 但不幸的是其中一些包含非 ASCII 字符 Hern ndez Querman s Miguel ez 现在 一种方法是使用正则表达式删除任何非字母数字字符 例如a repl
  • 计算 R 中单词出现的次数

    是否有一个函数可以计算特定关键字在数据集中包含的次数 例如 如果dataset lt c corn cornmeal corn on the cob meal 计数将为 3 我们暂时假设您想要包含 corn 的元素的数量 length gr
  • 如何在 C# 中调用 Azure Rest API

    我是 C 世界的新手 我有一个项目 需要从 700 多个订阅中收集所有区域的 Azure 计算使用配额 我已经使用 PowerShell Get AzVMUsage 轻松完成了此操作 我必须使用 C 来完成 我想我需要使用 Rest API
  • Rmarkdown - Rmarkdown 中的 python 内联代码

    我正在将 Rmarkdown 与 python 一起使用 相当于什么Rpython 的内联代码 例如 在https rmarkdown rstudio com lesson 4 html我可以 r x 显示文本中 x 的值 但如果我这样做
  • EntityState.Deleted 不起作用,Remove(entity) 起作用吗?

    当我尝试读取记录 然后在同一事务中删除这些记录时 我一直在与 EF 作斗争 我最初使用 EntityState Deleted 方法 这会给出错误 操作失败 无法更改关系 因为一个或多个外键属性不可为空 当关系发生更改时 相关的外键属性将设
  • Java 8 Date API - 获取一个月中的总周数

    我有一个 Kotlin 函数来获取一个月中的总周数 Code fun getTotalWeeksInMonth instant Instant Int val calendar Calendar getInstance calendar t
  • 如何在 Visual Studio 中调试 Windows 服务?

    是否可以在 Visual Studio 中调试 Windows 服务 我用过类似的代码 System Diagnostics Debugger Break 但它给出了一些代码错误 例如 我收到两个事件错误 eventID 4096 VsJI
  • 为什么重新分配 Object.prototype 不起作用?

    为什么这不起作用 this one works as I expected when objSayHello Object prototype objSayHello function alert Hello from OBJECT pro
  • mysql 中的逗号分隔值和通配符

    我的数据库中有一个值 其中包含逗号分隔的数据 例如 11 223 343 123 我想获取数据 如果它与某个数字匹配 在本例中为数字 223 WHERE wp postmeta meta value IN 223 223 223 223 我
  • 如何从 qcombobox 获取 itemdata?

    当我单击 QtWidgets QPushButton 以显示 QtWidgets QComboBox 中的 itemData 时 出现问题 我用以下代码填充我的组合框 self comboBox addItem Sandro 1 self