自学确实进度很慢,不过还是慢慢在摸索中前进,第一次将动态显示UI并将QTableView通过Qsqlmodle链接sqlite数据库并显示成功,记录如下,供初级入门爱好者学习并探讨。

import sys

from PySide2.QtWidgets import *
from PySide2.QtUiTools import *
from PySide2.QtSql import *
# from PySide2.QtCore import *
# from PySide2.QtGui import *

class Stats:

    def __init__(self):

        # 动态导入UI文件
        self.ui = QUiLoader().load('SQLITE2QTableView.ui')
        self.ui.setWindowTitle("Database Demo")

        # 设置链接数据库
        self.db = QSqlDatabase.addDatabase('QSQLITE')
        self.db.setDatabaseName('worker.db')
        if self.db.open():  # 打开数据库 成功
            # self.__openTable()  # 打开数据表
            # print("打开数据库成功")
            pass
        else:
            QMessageBox.warning(self, "错误", "打开数据库失败")

        #链接2个按钮的信号
        self.ui.btn_del.clicked.connect(self.delrow)
        self.ui.btn_add.clicked.connect(self.addrow)

        # 设置数据模型
        self.model = QSqlTableModel()
        self.model.setTable('worker')
        self.model.setEditStrategy(QSqlTableModel.OnFieldChange)
        self.model.select()

        # UI视图链接模型
        self.ui.tableView.setModel(self.model)
        # self.ui.tableView.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)  # 使表宽度自适应


    # 删除一行的槽函数
    def delrow(self):
        curIndex = self.ui.tableView.currentIndex()  # 获取当前选择单元格的模型索引
        self.model.removeRow(curIndex.row())  # 删除当前行
        self.model.submit()

    # 增加一行的槽函数
    def addrow(self):
        rowNum = self.model.rowCount()
        self.model.insertRow(rowNum)
        self.model.setData(self.model.index(rowNum,0),id)
        self.model.submit()

app = QApplication(sys.argv)
stats = Stats()
stats.ui.show()
app.exec_()

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐