2 qq 34787995 qq_34787995 于 2016.04.25 18:33 提问

PyQt:获取lineEdit值插入到mysql失败

我想把lineEdit的输入值一边显示到tablewidegt,一边插入到mysql。由于显示程序是提取mysql的数据再显示,所以显示界面是空白,并且mysql的数据也没有改变.


    from PyQt4 import QtCore, QtGui,QtSql
    import sys
    from test2 import Ui_MainWindow
    #test2是我用QT desigenr写的UI程序
    import chardet

    class StartQt4(QtGui.QMainWindow,Ui_MainWindow):
     def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.setupUi(self)
        self.db = QtSql.QSqlDatabase.addDatabase("QMYSQL") 
        self.db.setHostName("localhost")
        self.db.setDatabaseName("test")   #set address
        self.db.setUserName("root")
        self.db.setPassword("")
        if (self.db.open()):
            self.showdata()
        else:
            print "failed"
        QtCore.QObject.connect(self.pushButton, QtCore.SIGNAL("clicked()"), self.add)

     def add(self):
        name0 = str(self.lineEdit.text())    
        name1 = str(self.lineEdit_2.text())
        name2 = str(self.lineEdit_3.text())
        print type(name0)
        self.q=QtSql.QSqlQuery(self.db)
        self.q.exec_("insert into qiu (name0,nam1,name2) value ('%s','%s','%s')" %(''.join(name0),''.join(name1),''.join(name2)))
        self.q.exec_("commit")
        lastrow=self.tableWidget.rowCount()
        self.tableWidget.insertRow(lastrow)
        self.showdata()    

     def  showdata(self):
        q=QtSql.QSqlQuery(self.db)
        q.exec_("select * from qiu")
        for i in range(0,self.tableWidget.rowCount()):
            q.next()
            name0 = q.value(0).toString()
            name1 = q.value(1).toString()
            name2 = q.value(2).toString()
            self.tableWidget.setItem(i, 0, QtGui.QTableWidgetItem(name0))
            self.tableWidget.setItem(i, 1, QtGui.QTableWidgetItem(name1))
            self.tableWidget.setItem(i, 2, QtGui.QTableWidgetItem(name2))

    if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    myapp = StartQt4()
    myapp.show()
    sys.exit(app.exec_())

执行结果
图片说明

1个回答

oyljerry
oyljerry   Ds   Rxr 2016.04.25 22:42

先打印sql语句 看是否语法正确

qq_34787995
qq_34787995 这条语句能实现
大约 2 年之前 回复
qq_34787995
qq_34787995 q.exec_("insert into qiu (name0,name1,name2) value ('%s','%s','%s')" %('1','2','3'))
大约 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
pyqt4文档阅读(5):QLineEdit
QLineEdit
lineEdit输入内容控制
1、在头文件的类声明中加入槽#ifndef DIALOG_H #define DIALOG_H#include <QDialog>namespace Ui { class Dialog; }class Dialog : public QDialog { Q_OBJECTpublic: explicit Dialog(QWidget *parent = 0); ~Dialog(
pyqt4原始例程--将文本框LineEdit的内容输出并打印
参考文章:pyQt 写的小窗口 获取文本框内容 - 荒凉的废墟的日志 - 网易博客 http://huangliangfeixu.blog.163.com/blog/static/1897470622011216105210137/ 主要解决这篇文章代码输出中文乱码的现象。在“中文内容”前加u,即----u“中文内容” # -*- coding: cp936 -*- import
PyQt4 QLineEdit 使用方法
QLineEdit 单行输入框 lineedit = QLineEdit() 实例化一个输入框 lineedit =setReadOnly(True) #设置为只读 lineedit.setDragEnabled(True) #设置能接受拖放 lineedit.setMaxLength(5) #设置最大长度 lineedit.selectAll() #全选 lineedit.setFo
PyQt: LineEdit的智能输入提示
使用的的类是QtGui.QCompleterfrom PyQt4 import QtGui,QtCore str = QtCore.QStringList(['a','air','airbus'])#预先设置字典 lineEdit = QtGui.QLineEdit() lineEdit.setCompleter(QtGui.QCompleter(str)) #将字典添加到lineEdit中 这样
PyQt5实现QLineEdit添加clicked信号
大家都知道很多控件是没有clicked信号的,我在网上找了很多终于总结出2个方法来实现类似需求,比如给QLineEdit添加clicked信号,这样的话,当点击输入框时就会发送clicked信号,其它控件也是一样的做法,如下: 方法1:创建一个继承自QLineEdit的类,然后重写mousePressEvent。 class MyLineEdit(QLineEdit): click
pyqt文本框按回车触发事件
主要内容 通过继承实现自己的界面类;涉及模块:QDialog, QLineEdit , QTextBrowser界面布局:绝对布局,布局类   实例讲解 先看一段代码,我们定义了一个类Form,它继承自QDialog 1 2 3 4 5 6 7 8 9 10 11
pyqt 修改line Edit的背景颜色
Property-> palette-> Change Palette-> Color Role-> Base
pyqt QlineEdit 输入密码显示成圆点
使用自带的函数就可以实现: lineEdit.setEchoMode(QLineEdit.Password) import struct from PyQt5.QtWidgets import (QMessageBox, QLineEdit) from PyQt5.QtGui import QPixmap {...} class LoginWindow(QtWidgets.QWidget):
PyQt5教程(五)——对话框
对话框或对话窗口是现代GUI程序不可或缺的一部分。对话的定义是两个或多个人之间的交谈。在计算机程序中对话是与程序进行“交谈”的窗体。对话框用于输入数据、修改数据、更改程序设置等。QInputDialogQInputDialog提供了从用户取得一个输入的简便对话框。输入的值可以是字符串、数字或列表中的一项。import sys from PyQt5.QtWidgets import (QWidget,