Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import Ui_ImageSort # designed using Qt-Designer
- from PyQt5 import QtCore
- from PyQt5.QtWidgets import QMainWindow, QListWidgetItem
- MaskRole = QtCore.Qt.UserRole + 1000
- class ListDelegate(QtWidgets.QStyledItemDelegate):
- def createEditor(self, parent, option, index):
- mask = index.data(MaskRole)
- if mask is not None:
- editor = QtWidgets.QLineEdit(parent)
- editor.setInputMask(mask)
- return editor
- def setModelData(self, editor, model, index):
- if editor.hasAcceptableInput():
- text = editor.text()
- model.setData(index, text, QtCore.Qt.DisplayRole)
- re = QtCore.QRegularExpression(r"(\d+)\) (\d+) microns")
- match = re.match(index.data())
- color = QtGui.QColor("red")
- if match.hasMatch():
- val = match.captured(match.lastCapturedIndex())
- if val != "0":
- color = QtGui.QColor("black")
- model.setData(index, color, QtCore.Qt.ForegroundRole)
- class ImageSort(Ui_ImageSort.Ui_MainWindow, QMainWindow):
- def __init__(self):
- super(ImageSort, self).__init__()
- self.setupUi(self)
- self.pushButton_1.clicked.connect(list_view)
- self.pushButton_2.clicked.connect(print_scales)
- def list_view(self):
- self.listWidget.clear()
- for i in range(len(self.scale_txt)):
- item = QListWidgetItem(str(self.scale_txt[i]))
- item.setData(MaskRole, "1)")
- item.setText("1)" + str(scale) + "microns")
- item.setFlags(item.flags() | QtCore.Qt.ItemIsEditable)
- item.setForeground(QtCore.Qt.red)
- self.listWidget.addItem(item)
- def print_scales(self):
- self.listWidget.clear()
- error = 0
- for i in range(len(self.scale_txt)):
- if (self.scale_txt[i]==0):
- error = 1
- if (error ==0):
- self.listWidget.addItem("\nThe scale values are confirmed ")
- for i in range(len(self.scale_txt)):
- print(self.scale_txt[i])
- print("\n")
- else:
- self.listWidget.addItem("\nThe scale values have an error")
- self.listWidget.addItem("Press button 1 again to edit")
Advertisement
Add Comment
Please, Sign In to add comment