一、概述
本项目旨在开发一个基于 Python 和 PyQt6 的数据库查询工具,该工具能够连接到 SQL Server 数据库,显示数据库中的表名,支持用户输入 SQL 查询语句进行数据查询,并将查询结果展示在表格中。同时,为了提升用户体验,对界面进行了一系列优化,包括调整控件大小、设置选中项颜色、放大查询按钮以及改变查询输入区域背景颜色等。

二、功能实现
2.1 数据库连接
- 连接字符串:使用固定的连接字符串
'DRIVER={SQL Server};SERVER=LEGENDLI;DATABASE=testbase;UID=sa;PWD=1'连接到 SQL Server 数据库。 - 查询表名:通过执行 SQL 语句
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE'查询数据库中的所有表名,并将结果显示在QListWidget中。
2.2 界面布局
- 主布局:采用
QVBoxLayout作为主布局,从上到下依次排列表列表、查询输入区域和查询结果表格。 - 表列表:使用
QListWidget显示数据库中的表名,设置固定高度为 100 像素,并将选中项的背景颜色设置为蓝色,文字颜色设置为白色。 - 查询输入区域:包含一个
QLineEdit用于输入 SQL 查询语句,以及一个QPushButton用于触发查询操作。查询按钮的大小设置为原来的两倍,查询输入区域的背景颜色设置为黄色。 - 查询结果表格:使用
QTableWidget显示查询结果,设置选择行为为整行选择,并将选中行的背景颜色设置为蓝色,文字颜色设置为白色。
2.3 查询功能
- 无输入查询:当用户点击查询按钮且输入框为空时,检查
QListWidget中是否有选中的表名。如果有,则自动生成查询该表所有数据的 SQL 语句并执行。 - 自定义查询:用户可以在输入框中输入自定义的 SQL 查询语句,点击查询按钮后执行该语句,并将结果显示在表格中。
三、代码实现
3.1 类和方法
DatabaseQueryApp类:继承自QWidget,是整个应用程序的主窗口类。__init__方法:初始化界面和数据库连接。initUI方法:创建界面布局,设置控件属性和样式。connect_to_database方法:连接到 SQL Server 数据库,查询表名并显示在QListWidget中。execute_query方法:根据用户输入的查询语句或选中的表名执行查询操作,并将结果显示在表格中。
3.2 关键代码片段
# 设置 QListWidget 选中项整行变蓝色
self.table_list.setStyleSheet("QListWidget::item:selected { background-color: blue; color: white; }")
# 设置查询按钮大小为原来的两倍
current_width = self.query_button.sizeHint().width()
current_height = self.query_button.sizeHint().height()
self.query_button.setFixedSize(current_width * 2, current_height * 2)
# 设置查询输入区域背景颜色为黄色
query_input_container = QWidget()
query_input_container.setLayout(query_input_layout)
query_input_container.setStyleSheet("background-color: yellow;")
# 设置 QTableWidget 选中行整行变蓝色
self.result_table.setStyleSheet("QTableWidget::item:selected { background-color: blue; color: white; }")
全部代码
import</

最低0.47元/天 解锁文章
1569

被折叠的 条评论
为什么被折叠?



