导入所需的包

import pymysql import sys from PySide6.QtCore import * from PySide6.QtGui import * from PySide6.QtWidgets import * from QtUser import User_Dialog

定义数据库连接函数

def connect_db(): db = pymysql.connect(host='localhost', user='root', password='password', db='library') return db

定义登录界面

class Login_Dialog(QDialog): def init(self): super().init() self.setWindowTitle('登录') self.resize(300, 150) self.username_label = QLabel('用户名:') self.username_edit = QLineEdit() self.password_label = QLabel('密码:') self.password_edit = QLineEdit() self.password_edit.setEchoMode(QLineEdit.Password) self.login_button = QPushButton('登录') self.login_button.clicked.connect(self.login) layout = QGridLayout() layout.addWidget(self.username_label, 0, 0) layout.addWidget(self.username_edit, 0, 1) layout.addWidget(self.password_label, 1, 0) layout.addWidget(self.password_edit, 1, 1) layout.addWidget(self.login_button, 2, 1) self.setLayout(layout)

# 定义登录函数
def login(self):
    db = connect_db()
    cursor = db.cursor()
    username = self.username_edit.text()
    password = self.password_edit.text()
    sql = "SELECT * FROM user WHERE username=%s AND password=%s"
    cursor.execute(sql, (username, password))
    result = cursor.fetchone()
    if result:
        self.accept()
    else:
        QMessageBox.warning(self, '警告', '用户名或密码错误!')
    db.close()

定义主界面

class Main_Dialog(QDialog): def init(self): super().init() self.setWindowTitle('图书管理系统') self.resize(600, 400) self.table_widget = QTableWidget() self.table_widget.setColumnCount(5) self.table_widget.setHorizontalHeaderLabels(['编号', '书名', '作者', '出版社', '价格']) self.add_button = QPushButton('添加') self.add_button.clicked.connect(self.add_book) self.update_button = QPushButton('修改') self.update_button.clicked.connect(self.update_book) self.delete_button = QPushButton('删除') self.delete_button.clicked.connect(self.delete_book) layout = QVBoxLayout() layout.addWidget(self.table_widget) button_layout = QHBoxLayout() button_layout.addWidget(self.add_button) button_layout.addWidget(self.update_button) button_layout.addWidget(self.delete_button) layout.addLayout(button_layout) self.setLayout(layout) self.load_data()

# 加载数据
def load_data(self):
    db = connect_db()
    cursor = db.cursor()
    sql = "SELECT * FROM book"
    cursor.execute(sql)
    result = cursor.fetchall()
    self.table_widget.setRowCount(len(result))
    for i, row in enumerate(result):
        for j, col in enumerate(row):
            item = QTableWidgetItem(str(col))
            self.table_widget.setItem(i, j, item)
    db.close()

# 添加图书
def add_book(self):
    dialog = User_Dialog()
    if dialog.exec_() == QDialog.Accepted:
        db = connect_db()
        cursor = db.cursor()
        sql = "INSERT INTO book (name, author, press, price) VALUES (%s, %s, %s, %s)"
        cursor.execute(sql, (dialog.name_edit.text(), dialog.author_edit.text(), dialog.press_edit.text(), dialog.price_edit.text()))
        db.commit()
        db.close()
        self.load_data()

# 修改图书
def update_book(self):
    current_row = self.table_widget.currentRow()
    if current_row >= 0:
        book_id = int(self.table_widget.item(current_row, 0).text())
        dialog = User_Dialog()
        dialog.name_edit.setText(self.table_widget.item(current_row, 1).text())
        dialog.author_edit.setText(self.table_widget.item(current_row, 2).text())
        dialog.press_edit.setText(self.table_widget.item(current_row, 3).text())
        dialog.price_edit.setText(self.table_widget.item(current_row, 4).text())
        if dialog.exec_() == QDialog.Accepted:
            db = connect_db()
            cursor = db.cursor()
            sql = "UPDATE book SET name=%s, author=%s, press=%s, price=%s WHERE id=%s"
            cursor.execute(sql, (dialog.name_edit.text(), dialog.author_edit.text(), dialog.press_edit.text(), dialog.price_edit.text(), book_id))
            db.commit()
            db.close()
            self.load_data()
    else:
        QMessageBox.warning(self, '警告', '请选择要修改的记录!')

# 删除图书
def delete_book(self):
    current_row = self.table_widget.currentRow()
    if current_row >= 0:
        book_id = int(self.table_widget.item(current_row, 0).text())
        db = connect_db()
        cursor = db.cursor()
        sql = "DELETE FROM book WHERE id=%s"
        cursor.execute(sql, (book_id,))
        db.commit()
        db.close()
        self.load_data()
    else:
        QMessageBox.warning(self, '警告', '请选择要删除的记录!')

主程序

if name == 'main': app = QApplication(sys.argv) login_dialog = Login_Dialog() if login_dialog.exec_() == QDialog.Accepted: main_dialog = Main_Dialog() main_dialog.show() sys.exit(app.exec_()

请写出一段代码作为图书馆管理系统要求:1、使用python和MySQL2、能在Visual Studio中运行并使用以下的包实现交互设置import pymysqlimport sysfrom PySide6QtCore import from PySide6QtGui import from PySide6QtWidgets import from QtUser import User_Dial

原文地址: http://www.cveoy.top/t/topic/hjv8 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录