1. 程式人生 > 程式設計 >使用pyqt5 tablewidget 單元格設定正則表示式

使用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_())

執行效果

效果已經出來了,正是我們想要的效果

以上這篇使用pyqt5 tablewidget 單元格設定正則表示式就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。