程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何获取combobox.currentText()值大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何获取combobox.currentText()值?

开发过程中遇到如何获取combobox.currentText()值的问题如何解决?下面主要结合日常开发的经验,给出你关于如何获取combobox.currentText()值的解决方法建议,希望对你解决如何获取combobox.currentText()值有所启发或帮助;

我动态创建了一个组合框,但后来我不知道如何访问它以获取当前文本。

进程完成,退出代码 -1073740791 (0xC0000409)

from form import Ui_Dialog
from PyQt5 import QtCore,QtWidgets

class MainWindow(Ui_Dialog):
    def __init__(self):
        super(MainWindow).__init__()

    def setupUi(self,Dialog):
        super(MainWindow,self).setupUi(Dialog)
        self.btn_print.clicked.connect(lambda: print_doc())

class Ui_Dialog_comboBox(object):
    def __init__(self):
        super(MainWindow).__init__()
        self.comboBox = QtWidgets.QComboBox(Dialog)
        self.comboBox.setGeometry(QtCore.QRect(458,10,151,22))
        self.comboBox.setobjectname("comboBox_doctor")
        self.comboBox.addItem("")
        self.retranslateUi(Dialog)

    def retranslateUi(self,Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setwindowtitle(_translate("Dialog","Dialog"))
        self.comboBox.setItemText(0,_translate("Dialog","name"))

def print_doc():
    name = ui.comboBox.currentText()
    print(Name)

if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    Dialog = QtWidgets.QDialog()
    Ui_Dialog_comboBox()
    ui = MainWindow()
    ui.setupUi(Dialog)
    Dialog.show()
    sys.exit(app.exec_())

解决方法

您似乎对 UI 文件的使用方式以及类和实例的工作方式有些困惑。

首先,您应该不要单独将“表单类”子类化,您必须从基本 Qt 小部件类(在本例中为 QDialog)子类化表单类。

那么,您尝试访问的 comboBox 可能就是您在 Ui_Dialog_combobox 中创建的那个,但是您只是创建了该类的一个实例,而没有将其分配给任何东西(因此,完全没用。
此外,该类中的许多代码都有问题:super() 不完整(而且是错误的,因为它指的是另一个类),而且它还引用了 Dialog,它不仅不是那个类,但也是一个“碰巧”在其作用域内的变量。

所以,首先,永远尝试模仿 pyuic 生成的文件的行为。实际上,您几乎总是应该忽略它们的内容:您只需导入和使用它们。如果您查看有关 using Designer 的官方指南,您会发现并没有试图以任何方式修改或模仿这些文件。

这是您代码的(可能的)正确版本。

from form import Ui_Dialog
from PyQt5 import QtCore,QtWidgets

class MainWindow(QtWidgets.QDialog,Ui_Dialog):
    def __init__(self):
        super(MainWindow,self).__init__()
        self.setupUi(self)

        self.comboBox = QtWidgets.QComboBox(self)
        self.comboBox.setGeometry(QtCore.QRect(458,10,151,22))
        self.comboBox.addItem("NAME")

        self.btn_print.clicked.connect(self.print_doC)

    def print_doc(self):
        name = self.comboBox.currentText()
        print(Name)


if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    mainWindow = MainWindow()
    mainWindow.show()
    sys.exit(app.exec_())

一些进一步的建议:

  • 固定几何形状几乎总是一个糟糕的主意;应改用 layout managers;
  • 函数名和变量名应该总是以小写字母开头,因为只有类和常量通常以大写字母开头;在 Style Guide for Python Code 上阅读有关此方面和其他重要方面的更多信息;
  • 仅在真正需要时(动态访问本地对象等)才使用 lambda,尤其是信号连接;
  • 仔细研究上面的代码,试着理解它的作用,并在文档中搜索所有你不知道的功能;
  • pyuic 生成的文件具有指导意义,因此您可以阅读它们以了解它们的作用,甚至尝试修改它们,但仅限于用于学习目的;就是这样:记住,对于一般用法,它们应该永远被修改,并且除非您真的知道其目的,否则您不应该尝试模仿他们所做的一切

大佬总结

以上是大佬教程为你收集整理的如何获取combobox.currentText()值全部内容,希望文章能够帮你解决如何获取combobox.currentText()值所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。