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_())
执行效果
效果已经出来了,正是我们想要的效果
以上这篇使用pyqt5 tablewidget 单元格设置正则表达式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持亿速云。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。