AttributeError:'bool'对象没有属性'le' - pyqt - 将文本转换为python变量

问题描述 投票:0回答:1

我使用Qt Designer创建了一个UI,它有一个简单的行输入和一个按钮。我尝试在python变量中获取行编辑的输入,但它给我一个错误。这是我的python代码:

from PyQt4 import QtGui
import sys
import prog
import MySQLdb

class ExampleApp(QtGui.QMainWindow, prog.Ui_Program):
    def __init__(self, parent=None):
        super(ExampleApp, self).__init__(parent)
        self.setupUi(self)
        self.pushButton.clicked.connect(functioni)

def functioni (self):
    db = MySQLdb.connect(host="localhost", 
                     user="root",       
                     passwd="*****",    
                     db="testpy")   

    cur = db.cursor()

    cur.execute("INSERT INTO Name (Name) VALUES (?)", self.le.text()) #self.le.text() is giving me trouble...

    db.commit()
    cur.close()
    db.close()


def main():
    app = QtGui.QApplication(sys.argv)
    form = ExampleApp()
    form.show()
    app.exec_()

if __name__ == '__main__':
    main()

我的ui代码有这个:

self.le = QtGui.QLineEdit(self.centralwidget)
self.le.setObjectName(_fromUtf8("le"))

当我运行python程序时,我收到此错误:

Traceback (most recent call last):
  File "main.py", line 20, in functioni
  cur.execute("INSERT INTO Name (Name) VALUES (?)", self.le.displayText())
AttributeError: 'bool' object has no attribute 'le'

这个问题可能以前曾被问过,但我已经尝试了一切,但它不会起作用!我无法想象这里的什么是bool。解决方案可能是微不足道的,但如果有人可以指出我的错误,我会很感激。谢谢。

这是我的完整ui代码:

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'prog.ui'
#
# Created by: PyQt4 UI code generator 4.11.4
#
# WARNING! All changes made in this file will be lost!

from PyQt4 import QtCore, QtGui

try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    def _fromUtf8(s):
        return s

try:
    _encoding = QtGui.QApplication.UnicodeUTF8
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig)

class Ui_Program(object):
    def setupUi(self, Program):
        Program.setObjectName(_fromUtf8("Program"))
        Program.resize(351, 138)
        Program.setLayoutDirection(QtCore.Qt.LeftToRight)
        self.centralwidget = QtGui.QWidget(Program)
        self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
        self.formLayout = QtGui.QFormLayout(self.centralwidget)
        self.formLayout.setObjectName(_fromUtf8("formLayout"))
        self.label = QtGui.QLabel(self.centralwidget)
        self.label.setObjectName(_fromUtf8("label"))
        self.formLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.label)
        self.le = QtGui.QLineEdit(self.centralwidget)
        self.le.setObjectName(_fromUtf8("le"))
        self.formLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.le)
        self.pushButton = QtGui.QPushButton(self.centralwidget)
        self.pushButton.setObjectName(_fromUtf8("pushButton"))
        self.formLayout.setWidget(1, QtGui.QFormLayout.FieldRole, self.pushButton)
        Program.setCentralWidget(self.centralwidget)
        self.menubar = QtGui.QMenuBar(Program)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 351, 25))
        self.menubar.setObjectName(_fromUtf8("menubar"))
        self.menuSubmit = QtGui.QMenu(self.menubar)
        self.menuSubmit.setObjectName(_fromUtf8("menuSubmit"))
        Program.setMenuBar(self.menubar)
        self.statusbar = QtGui.QStatusBar(Program)
        self.statusbar.setObjectName(_fromUtf8("statusbar"))
        Program.setStatusBar(self.statusbar)
        self.toolBar = QtGui.QToolBar(Program)
        self.toolBar.setObjectName(_fromUtf8("toolBar"))
        Program.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar)
        self.actionSubmit = QtGui.QAction(Program)
        self.actionSubmit.setObjectName(_fromUtf8("actionSubmit"))
        self.menuSubmit.addAction(self.actionSubmit)
        self.menubar.addAction(self.menuSubmit.menuAction())

        self.retranslateUi(Program)
        QtCore.QMetaObject.connectSlotsByName(Program)

    def retranslateUi(self, Program):
        Program.setWindowTitle(_translate("Program", "Program", None))
        self.label.setText(_translate("Program", "Name", None))
        self.pushButton.setText(_translate("Program", "Submit", None))
        self.menuSubmit.setTitle(_translate("Program", "Submit", None))
        self.toolBar.setWindowTitle(_translate("Program", "toolBar", None))
        self.actionSubmit.setText(_translate("Program", "Submit", None))
python qt pyqt4
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.