class MainWindow(QMainWindow, Ui_MainWindow): def __init__(self, parent=None): super(MainWindow, self).__init__(parent) self.setupUi(self) # 连接数据库 self.db = QSqlDatabase.addDatabase('QMYSQL') self.db.setHostName('localhost') self.db.setUserName('root') self.db.setPassword('password') self.db.setDatabaseName('student') if not self.db.open(): print('无法连接数据库') sys.exit(1) # 初始化表格模型 self.model = QSqlTableModel(self) self.model.setTable('student') self.model.select() # 设置表格视图 self.tableView.setModel(self.model) # 设置信号槽连接 self.addButton.clicked.connect(self.add_student) self.modifyButton.clicked.connect(self.modify_student) self.deleteButton.clicked.connect(self.delete_student) self.queryButton.clicked.connect(self.query_student)
时间: 2024-04-03 15:32:52 浏览: 88
这段代码定义了一个继承自 QMainWindow 和 Ui_MainWindow 的 MainWindow 类,用于创建主窗口。在 __init__ 方法中,首先调用了父类的构造函数,然后调用了 setupUi 方法初始化了主窗口的界面。接下来,通过 QSqlDatabase 模块连接了一个 MySQL 数据库,并设置了连接信息。如果无法连接数据库,就会输出错误信息并退出程序。
然后,初始化了一个 QSqlTableModel 对象,并设置了它的数据表为 student,然后调用了 select 方法查询了该数据表中的所有数据,并将查询结果设置为模型的数据源。接着,将该模型设置为表格视图的数据源,使得表格视图能够显示数据。
最后,将添加按钮、修改按钮、删除按钮和查询按钮的 clicked 信号与对应的槽函数 add_student、modify_student、delete_student 和 query_student 进行了连接,以实现对数据库的增、删、改、查操作。
阅读全文