作者:mobiledu2502900505 | 来源:互联网 | 2023-09-18 13:36
pyqt5的tablewidget组件比较特殊,每个方格可以装载其他组件来搭配实现不同的效果,所以在qtdesigner上找不到可视化直接设置mask或者其他可以限制填入单元格的设置
方法
正是利用tablewidget组件里面放置可以设置正则表达式的lineedit来实现这个功能
在窗口组件窗口加入一个初始化函数
def init(self):from PyQt5.Qt import QRegExpValidatorfrom PyQt5.Qt import QRegExpregx=QRegExp("[0-9]*")self.ceil=[]for i in range(0,3):ceil=QtWidgets.QLineEdit()validator = QRegExpValidator(regx)ceil.setValidator(validator)ceil.setPlaceholderText("请输入参数")if i==0 :ceil=QtWidgets.QLineEdit()self.tableWidget.setCellWidget(0,i,ceil)self.ceil.append(ceil)
在主函数这样使用
if __name__ == "__main__":from PyQt5 import QtCore, QtGui, QtWidgetsimport sysapp = 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_())
执行效果
效果已经出来了,正是我们想要的效果