Qt GUI 图书管理系统 - 增加图书界面:出版时间格式校验
Qt GUI 图书管理系统 - 增加图书界面:出版时间格式校验
本代码使用 PyQt5 实现一个简单的图书管理系统,其中增加图书界面包含出版时间输入框,并使用 QRegExpValidator 和 QPalette 实现出版时间格式校验,若不符合 '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) # 设置画板
代码解释:
- 使用
QRegExp创建正则表达式,排除 'yyyy-mm-dd' 格式,确保输入框只能输入其他格式的日期。 - 使用
QRegExpValidator创建校验器,并将校验器设置到出版时间编辑框self.edit_add_time上。 - 使用
QPalette创建画板,设置默认颜色为黑色,设置校验不通过时的颜色为红色。 - 将画板设置到出版时间编辑框
self.edit_add_time上,实现颜色变化。
运行结果:
当用户输入的出版时间不符合 'yyyy-mm-dd' 格式时,文字颜色会变成红色,提醒用户输入错误。当用户输入符合 'yyyy-mm-dd' 格式时,文字颜色会恢复为黑色。
注意:
- 该代码仅演示了出版时间格式校验,并没有进行实际日期有效性校验,例如闰年、日期范围等。
- 您需要根据实际需求进行修改和完善代码。
原文地址: http://www.cveoy.top/t/topic/oQft 著作权归作者所有。请勿转载和采集!