Qt GUI 图书管理系统 - 增加图书界面:出版时间格式校验

本代码使用 PyQt5 实现一个简单的图书管理系统,其中增加图书界面包含出版时间输入框,并使用 QRegExpValidatorQPalette 实现出版时间格式校验,若不符合 'yyyy-mm-dd' 格式,则文字显示为红色。

class Add_Book_Window(QMainWindow):
    def __init__(self, privilege, parent=None):
        super(Add_Book_Window, self).__init__(parent)
        self.privilege = privilege
        self.setWindowTitle('增加图书界面')
        self.resize(400, 300)

        # 创建界面控件
        self.label_add_bookid = QLabel('图书ID:')
        self.edit_add_bookid = QLineEdit()
        self.label_add_bookname = QLabel('书名:')
        self.edit_add_bookname = QLineEdit()
        self.label_add_author = QLabel('作者:')
        self.edit_add_author = QLineEdit()
        self.label_add_chubanshe = QLabel('出版社:')
        self.edit_add_chubanshe = QLineEdit()
        self.label_add_time = QLabel('出版时间:')
        self.edit_add_time = QLineEdit()
        self.label_add_price = QLabel('价格:')
        self.edit_add_price = QLineEdit()
        self.label_add_lendornot = QLabel('是否借出:')
        self.combo_add_lendornot = QComboBox()
        self.combo_add_lendornot.addItem('是')
        self.combo_add_lendornot.addItem('否')
        self.btn_add_book_yes = QPushButton('添加')
        self.btn_add_book_fanhui = QPushButton('返回')

        # 设置出版时间编辑框的输入格式和颜色
        regx = QRegExp('^((?!yyyy-mm-dd).)*$')  # 设置正则表达式,排除'yyyy-mm-dd'格式
        validator = QRegExpValidator(regx, self.edit_add_time)  # 创建校验器
        self.edit_add_time.setValidator(validator)  # 设置校验器
        palette = QPalette()  # 创建画板
        palette.setColor(QPalette.Text, Qt.black)  # 设置默认颜色为黑色
        palette.setColor(QPalette.Invalid, Qt.red)  # 设置校验不通过时的颜色为红色
        self.edit_add_time.setPalette(palette)  # 设置画板

代码解释:

  1. 使用 QRegExp 创建正则表达式,排除 'yyyy-mm-dd' 格式,确保输入框只能输入其他格式的日期。
  2. 使用 QRegExpValidator 创建校验器,并将校验器设置到出版时间编辑框 self.edit_add_time 上。
  3. 使用 QPalette 创建画板,设置默认颜色为黑色,设置校验不通过时的颜色为红色。
  4. 将画板设置到出版时间编辑框 self.edit_add_time 上,实现颜色变化。

运行结果:

当用户输入的出版时间不符合 'yyyy-mm-dd' 格式时,文字颜色会变成红色,提醒用户输入错误。当用户输入符合 'yyyy-mm-dd' 格式时,文字颜色会恢复为黑色。

注意:

  • 该代码仅演示了出版时间格式校验,并没有进行实际日期有效性校验,例如闰年、日期范围等。
  • 您需要根据实际需求进行修改和完善代码。
Qt GUI 图书管理系统 - 增加图书界面:出版时间格式校验

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

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