当前位置: 首页 > article >正文

QT+mysql+python 效果:





# This Python file uses the following encoding: utf-8
import sys

from PySide6.QtWidgets import QApplication, QWidget,QMessageBox
from PySide6.QtGui import QStandardItemModel, QStandardItem  # 导入需要的类

# Important:
#     你需要通过以下指令把 form.ui转为ui_form.py
#     pyside6-uic form.ui -o ui_form.py

from ui_form import Ui_Widget

# 前提具备 连接库和建立一个user1的表
import pymysql as p  # 模块名尽量用小写 ,刚才有大写,所以一直在报红

class Widget(QWidget):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.ui = Ui_Widget()
        self.ui.setupUi(self)

        # 连接按钮点击事件到槽函数
        self.ui.pushButton.clicked.connect(self.show_message)

    def show_message(self):
        # 弹出对话框,显示 "你好"
        QMessageBox.information(self, "消息", "你好")
        self.abc()


    def abc(self):
        # 连接数据库
        conn = p.connect(host='mysql.sqlpub.com', port=3306, user='laocooon',
                         passwd='fc12f7a5215e8e0a', db='huangjin')
        cur = conn.cursor()

        try:
            #查找
            sql = "select * from user1"
            cur.execute(sql)

            result = cur.fetchall()
            print(result)

            # 创建模型
            model = QStandardItemModel(len(result), len(result[0]))  # 行数和列数
            model.setHorizontalHeaderLabels(["ID", "Name", "Password"])  # 设置表头

            # 将数据填充到模型中
            for row_idx, row_data in enumerate(result):
                for col_idx, item in enumerate(row_data):
                    model.setItem(row_idx, col_idx, QStandardItem(str(item)))

            # 将模型设置到 QTableView
            self.ui.tableView.setModel(model)  # 注意:tableView 应该是通过 UI 文件定义的


            conn.commit()
        except Exception as e:
            print("数据操作错误", e)
            conn.rollback()
        finally:
            cur.close()
            conn.close()



if __name__ == "__main__":
    app = QApplication(sys.argv)
    widget = Widget()
    widget.show()
    sys.exit(app.exec())


http://www.kler.cn/a/524203.html

相关文章:

  • AI编译器之——为什么大模型需要Relax?
  • 抠图神器,全离线使用,支持win和mac
  • doris:Bitmap
  • CAPL编程常见问题与解决方案深度解析
  • Databend x 沉浸式翻译 | 基于 Databend Cloud 构建高效低成本的业务数据分析体系
  • Android 启动流程
  • 八种排序算法【C语言实现】
  • 代码随想录| 动态规划188.买卖股票的最佳时机IV 309.最佳买卖股票时机含冷冻期 714.买卖股票的最佳时机含手续费
  • 技术发展视域下中西方技术研发思维方式的比较与启示
  • 传奇引擎游戏微端的作用
  • 5分钟带你获取deepseek api并搭建简易问答应用
  • AI工具灵感速递:离线ChatGPT×自然语言全栈开发×智能文件重命名,开发者效率革命!
  • DeepSeek-R1:开源Top推理模型的实现细节、使用与复现
  • 【华为OD-E卷 - 字符串解密 100分(python、java、c++、js、c)】
  • 52. TCP四次挥手
  • 动态规划<九>两个数组的dp
  • 基于SpringBoot电脑组装系统平台系统功能实现六
  • PHP If...Else 语句详解
  • 高级java每日一道面试题-2025年01月23日-数据库篇-主键与索引有什么区别 ?
  • HTML特殊符号的使用示例
  • Vue5---
  • 平衡三进制计算机基础构想
  • 单片机开发——定时器(基于51)
  • Baklib揭示内容中台与人工智能技术的创新协同效应
  • FastAPI + GraphQL 项目架构
  • Windows 下本地 Docker RAGFlow 部署指南