1、安装qt4,qt5python
2、安装sip及PyQt(建议源码编译安装)mysql
下载sip-4.17.tar.gz、PyQt-gpl-5.5.1.tar.gzlinux
减压后sql
python configure.py (或python)数据库
make&sudo make install测试
3、安装mysql的sqldriversui
默认状况下qt只有SQLite驱动,其它驱动要本身安装:编码
sudo apt-get install libqt4-sql-mysql libqt5sql5-mysqlspa
sudo apt-get install libqt4-sql-psql libqt5sql5-psqlcode
4、对于安装MATLAB的系统可能出现动态连接库版本问题
如import QtPy模块时出错
>>> from PyQt4.QtQtSql import *
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: /opt/local/MATLAB/R2012a/bin/glnxa64/QtSql.so.4: undefined symbol: _ZN31
locate QtSql.so
而后把连接改到系统库下
/opt/local/MATLAB/R2012a/bin/glnxa64/libQtSql.so.4 -> /usr/lib/x86_64-linux-gnu/libQtSql.so.4.8.6
个人系统里QtCore、QtGui、QtOpenGL、QtNetwork等都有问题、须要以上操做。修改后未发现MATLAB运行异常
5、测试代码
mysql
#-*- coding: utf-8 -*- from PyQt4.QtGui import * from PyQt4.QtCore import * from PyQt4.QtSql import * import sys #建立数据库链接 def createConnection(): #选择数据库类型,这里为mysql数据库 db=QSqlDatabase.addDatabase("QMYSQL") db.setDatabaseName("you_db") db.setHostName("localhost") #set address db.setUserName("you_usr"); #set user name db.setPassword("you_passwd"); #set user pwd #打开数据库 #打开数据库 if (db.open()): print ("Success") else: print ("Failed to connect to mysql") #建立表 def createTable(): #建立QsqlQuery对象,用于执行sql语句 q=QSqlQuery() q.exec_("create table if not exists t1 (f1 integer primary key,f2 varchar(20))") q.exec_("delete from t1") #这里使用 u 将字符串转换成unicode编码,解决中文乱码 q.exec_(u"insert into t1 values(1,'我')") q.exec_(u"insert into t1 values(2,'我')") q.exec_("commit") class Model(QSqlTableModel): def __init__(self,parent): QSqlTableModel.__init__(self,parent) #设置要载入的表名 self.setTable("t1") #这一步应该是执行查询的操做 self.select() #数据更新的策略,详细能够查看Qt文档 self.setEditStrategy(QSqlTableModel.OnManualSubmit) class TestWidget(QWidget): def __init__(self): QWidget.__init__(self) vbox=QVBoxLayout(self) self.view=QTableView() self.model=Model(self.view) self.view.setModel(self.model) vbox.addWidget(self.view) if __name__=="__main__": a=QApplication(sys.argv) createConnection() createTable() w=TestWidget() w.show() sys.exit(a.exec_())
Postgres
只需把
db=QSqlDatabase.addDatabase("QMYSQL")
QMYSQL改成QPSQL(固然数据库的链接信息确定要改过来)