我使用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))