下载PyQt5
下载designer
使用Qtdesigner
- 将生产的ui文件转py文件,使用命令pyuic5 xx.ui -o xx.py
- 此时只自动生成了ui界面的代码,需要自己写主程序调用你的界面类,并且需要自己编写界面的类并注册UI的类
- from PyQt5 import uic
- 使用uic的loadUi()方法读取designer设计的ui文件,就可以不必ui文件转py文件这一部。
- 主程序入口:调用你的Qt窗口,然后show()出来,然后退出
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MyMainWindow()
window.show()
sys.exit(app.exec_())
class MyMainWindow(QMainWindow):
def __init__(self):
super().__init__()
uipath = os.path.join(os.path.dirname(__file__), 'window.ui')
uic.loadUi(uipath, self)
布局
QtSql
- 引入库
from PyQt5.QtSql import QSqlDatabase, QSqlQuery
- 连接数据库
- 创建数据库连接并打开
- 这里是连接SqlServer的例子
server = '100.88.16.2'
dbname = '市本级'
username = 'xx'
password = 'xx'
db = QSqlDatabase.addDatabase('QODBC')
db.setDatabaseName(
f'Driver={
{Sql Server}};Server={server};Database={dbname};Uid={username};Pwd={password}'
)
db.open()
- 执行sql语句
query = QSqlQuery()
query.exec("Select name From sys.databases")
query = QSqlQueryModel()
query.setQuery("xxxxx")
- 获取查询结果
- 使用QSqlQueryModel对象的属性与方法来获取结果集
model.columnCount()
model.rowCount()
model.index(x,y)
model.data(indexObj)
while model.canFetchMore():
model.fetchMore()
- 关联tableView控件
- 需要先建立model对象,再将tableView与model相关联起来
from PyQt5.QtSql import QSqlDatabase, QSqlQuery, QSqlQueryModel
qqm = QSqlQueryModel()
qqm.setQuery('select * from alltables')
self.tableView_3.setModel(qqm)
QtSql数据源切换remove问题