我的程序当前分为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)
由于第一个打印正常,我猜按钮可以正确调用该函数。但是我无法确定为什么它不适用于文本字段,因为在运行程序时没有出现任何错误。
答案 0 :(得分:0)
通过从currentText()切换到displayText()来解决问题,因为QLineEdit中没有属性“ currentText”。
isbn = self.ui.isbn.displayText()
文本取自正确存储在变量中的文本字段,由print()显示,并且程序不会崩溃。