pyqt5 tablewidget 单元格设置正则表达式

tablewidget

这里写图片描述
pyqt5的tablewidget组件比较特殊,每个方格可以装载其他组件来搭配实现不同的效果,所以在qtdesigner上找不到可视化直接设置mask或者其他可以限制填入单元格的设置

方法

正是利用tablewidget组件里面放置可以设置正则表达式的lineedit来实现这个功能

在窗口组件窗口加入一个初始化函数

    def init(self):
        from PyQt5.Qt import QRegExpValidator
        from PyQt5.Qt import QRegExp
        regx=QRegExp("[0-9]*")#正则表达式
        self.ceil=[]#利用python的引用功能,用于方便获取tablewidget里设置了正则表达式的ceil
        for i in range(0,3):
            ceil=QtWidgets.QLineEdit()#新建一个qlineedit来装正则表达式
            validator = QRegExpValidator(regx)
            ceil.setValidator(validator)
            ceil.setPlaceholderText("请输入参数")
            if i==0 :
                ceil=QtWidgets.QLineEdit()#第一个位置可以不用设置正则表达式
            self.tableWidget.setCellWidget(0,i,ceil)#利用table widget可以装其他组件的方式来实现
            self.ceil.append(ceil)

在主函数这样使用

if __name__ == "__main__":
    from PyQt5 import QtCore, QtGui, QtWidgets
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    Dialog=QtWidgets.QDialog()
    Dialog_ui=Ui_Dialog()
    Dialog_ui.setupUi(Dialog)
    Dialog.show()
    Dialog_ui.init()
    sys.exit(app.exec_())

执行效果

这里写图片描述
效果已经出来了,正是我们想要的效果

发布了75 篇原创文章 · 获赞 14 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/qq965194745/article/details/78910469