PyQt5显示数据库数据并自动刷新,表头为["员工ID", "员工姓名", "性别", "身份证号码", "手机号", "地址", "公司名称"]
时间: 2023-09-20 08:09:57 浏览: 86
以下是一个使用PyQt5显示数据库数据并自动刷新的示例程序,其中表头为["员工ID", "员工姓名", "性别", "身份证号码", "手机号", "地址", "公司名称"]:
```python
import sys
from PyQt5.QtWidgets import QApplication, QTableView
from PyQt5.QtSql import QSqlDatabase, QSqlQuery, QSqlTableModel
from PyQt5.QtCore import QTimer
class EmployeeTableView(QTableView):
def __init__(self):
super().__init__()
self.setWindowTitle("员工信息列表")
self.resize(800, 600)
self.model = QSqlTableModel()
self.model.setTable("employees")
self.model.setEditStrategy(QSqlTableModel.OnFieldChange)
self.model.select()
self.setModel(self.model)
self.setColumnHidden(0, True) # 隐藏员工ID列
self.setHorizontalHeaderLabels(["员工ID", "员工姓名", "性别", "身份证号码", "手机号", "地址", "公司名称"])
self.timer = QTimer(self)
self.timer.timeout.connect(self.refresh)
self.timer.start(10000) # 每10秒自动刷新一次
def refresh(self):
self.model.select()
if __name__ == '__main__':
app = QApplication(sys.argv)
db = QSqlDatabase.addDatabase("QMYSQL")
db.setHostName("localhost")
db.setDatabaseName("mydatabase")
db.setUserName("root")
db.setPassword("password")
if not db.open():
print("无法连接数据库")
sys.exit(1)
query = QSqlQuery()
query.exec_("""CREATE TABLE IF NOT EXISTS employees (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255),
gender VARCHAR(10),
id_number VARCHAR(20),
phone_number VARCHAR(20),
address VARCHAR(255),
company_name VARCHAR(255)
)""")
query.exec_("""INSERT INTO employees (name, gender, id_number, phone_number, address, company_name)
VALUES ('张三', '男', '123456789012345678', '13812345678', '北京市朝阳区', 'ABC公司')""")
query.exec_("""INSERT INTO employees (name, gender, id_number, phone_number, address, company_name)
VALUES ('李四', '女', '234567890123456789', '13912345678', '上海市浦东新区', 'DEF公司')""")
view = EmployeeTableView()
view.show()
sys.exit(app.exec_())
```
在该示例程序中,我们使用了QSqlTableModel来管理数据库表中的数据,在程序初始化时,我们将其设置为显示employees表中的数据,并隐藏员工ID列,设置表头,然后使用QTimer自动刷新数据(每10秒刷新一次)。
注意:在使用该示例程序之前,需要先在MySQL数据库中创建名为mydatabase的数据库,并且添加名为employees的表,并且在表中添加两条员工信息记录。
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)