當前位置:首頁 » 編程語言 » pythonqtableview

pythonqtableview

發布時間: 2023-06-13 20:04:43

⑴ pyqt4怎麼連接mysql資料庫

pyqt4連接mysql資料庫的方法:
原料:sip-4.17.tar.gz、PyQt-gpl-5.5.1.tar.gz安裝包
下載後解壓縮到用戶目錄。

鍵入以下命令:
python configure.py (或python)
make&sudo make install
1、安裝mysql的sqldrivers
默認情況下qt只有SQLite驅動,其它驅動要自己安裝:
sudo apt-get install libqt4-sql-mysql libqt5sql5-mysql

sudo apt-get install libqt4-sql-psql libqt5sql5-psql
2、對於安裝MATLAB的系統可能出現動態鏈接庫版本問題

如import QtPy模塊時出錯

>>> from PyQt4.QtQtSql import *
Traceback (most recent call last):
File "<stdin>", line 1, in <mole>
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運行異常
3、測試代碼
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_())

測試完成,連接成功。

熱點內容
我的世界pe伺服器創造 發布:2025-05-15 10:51:17 瀏覽:607
移動端打吃雞要什麼配置 發布:2025-05-15 10:48:16 瀏覽:756
我的世界哪五個伺服器被炸了 發布:2025-05-15 10:36:16 瀏覽:994
ehcache存儲對象 發布:2025-05-15 10:35:31 瀏覽:528
搭建虛擬電腦的伺服器 發布:2025-05-15 10:29:31 瀏覽:270
湖人雙核配置哪個最好 發布:2025-05-15 10:09:48 瀏覽:980
手機熱點密碼怎麼查看 發布:2025-05-15 09:54:47 瀏覽:109
生意發力雲存儲 發布:2025-05-15 09:54:45 瀏覽:617
編寫一個shell腳本添加用戶 發布:2025-05-15 09:54:43 瀏覽:506
資料庫查看錶命令 發布:2025-05-15 09:52:27 瀏覽:915