currentText()不从字段收集数据

时间:2018-07-18 18:58:15

标签: python pyqt5

我的程序当前分为2个文件:一个包含GUI,另一个包含代码。在GUI中,我想使用一个按钮从文本字段收集数据并将其放入变量中:

self.dodaj.clicked.connect(Dodaj_Ksiazke.pobierz_dane)

应该调用函数“ pobierz_dane”。在代码内有“ Main”类,其中定义了上述功能:

def pobierz_dane(self):
    print("Pobieranie danych z formularza do zmiennych")
    print(self.ui.isbn.currentText())
    isbn = self.ui.isbn.currentText()
    print(isbn)

如您所见,我尝试了各种方法来确认其正常工作。当我启动程序并单击按钮时,将显示第一个打印件,但不显示第二个或第三个打印件,这是程序因错误而崩溃的地方:

Process finished with exit code -1073740791 (0xC0000409)

我试图从中获取文本的文本字段是这样定义的:

    self.isbn = QtWidgets.QLineEdit(self.centralwidget)
    self.isbn.setObjectName("isbn")
    self.gridLayout_2.addWidget(self.isbn, 1, 2, 1, 1)

这是GUI定义的开始:

class Ui_Dodaj_Ksiazke(object):
    def setupUi(self, Dodaj_Ksiazke):

和带有代码的文件的主类:

class Main(QtWidgets.QMainWindow,Ui_Dodaj_Ksiazke):
    def __init__(self):
       QtWidgets.QMainWindow.__init__(self)
       self.ui= Ui_Dodaj_Ksiazke()
       self.ui.setupUi(self)

由于第一个打印正常,我猜按钮可以正确调用该函数。但是我无法确定为什么它不适用于文本字段,因为在运行程序时没有出现任何错误。

1 个答案:

答案 0 :(得分:0)

通过从currentText()切换到displayText()来解决问题,因为QLineEdit中没有属性“ currentText”。

isbn = self.ui.isbn.displayText()

文本取自正确存储在变量中的文本字段,由print()显示,并且程序不会崩溃。