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

yipeiwu_com6年前Python基础

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 单元格设置正则表达式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python可迭代对象操作示例

本文实例讲述了Python可迭代对象。分享给大家供大家参考,具体如下: 1、列表生成式 list = [result for x in range(m, n)] g1 = (i fo...

python 通过类中一个方法获取另一个方法变量的实例

1、在进行接口自动化测试过程中,经常出现接口数据的互相调用,如一些操作需要调用登陆之后返回的session或者token,下面同个简单的方法进行讲解 class A(): def...

举例讲解Python中metaclass元类的创建与使用

举例讲解Python中metaclass元类的创建与使用

元类是可以让你定义某些类是如何被创建的。从根本上说,赋予你如何创建类的控制权。 元类也是一个类,是一个type类。   元类一般用于创建类。在执行类定义时,解释器必须要知道这个...

python找出列表中大于某个阈值的数据段示例

python找出列表中大于某个阈值的数据段示例

该算法实现对列表中大于某个阈值(比如level=5)的连续数据段的提取,具体效果如下: 找出list里面大于5的连续数据段: list = [1,2,3,4,2,3,4,5,6,7,...

Python函数式编程指南(一):函数式编程概述

1. 函数式编程概述 1.1. 什么是函数式编程? 函数式编程使用一系列的函数解决问题。函数仅接受输入并产生输出,不包含任何能影响产生输出的内部状态。任何情况下,使用相同的参数调用函数始...