def __init__(self, text="Enter object label", parent=None, listItem=None): super(LabelDialog, self).__init__(parent) self.edit = QLineEdit() self.edit.setText(text) self.edit.setValidator(labelValidator()) self.edit.editingFinished.connect(self.postProcess) model = QStringListModel() model.setStringList(listItem) completer = QCompleter() completer.setModel(model) self.edit.setCompleter(completer) layout = QVBoxLayout() layout.addWidget(self.edit) self.buttonBox = bb = BB(BB.Ok | BB.Cancel, Qt.Horizontal, self) bb.button(BB.Ok).setIcon(newIcon('done')) bb.button(BB.Cancel).setIcon(newIcon('undo')) bb.accepted.connect(self.validate) bb.rejected.connect(self.reject) layout.addWidget(bb) if listItem is not None and len(listItem) > 0: self.listWidget = QListWidget(self) for item in listItem: self.listWidget.addItem(item) self.listWidget.itemClicked.connect(self.listItemClick) self.listWidget.itemDoubleClicked.connect(self.listItemDoubleClick) layout.addWidget(self.listWidget) self.setLayout(layout)
def __init__(self): super(AngleDialog, self).__init__() title = 'Angle rotate win' self.setWindowTitle(title) self.count = 0 self.layout = QGridLayout() edit = QLineEdit() edit.setText('0') edit.setValidator(labelValidator()) model = QStringListModel() completer = QCompleter() completer.setModel(model) edit.setCompleter(completer) self.mainLabel = edit self.mainLabel.setValidator(QIntValidator()) self.mainLabel.setFocus() self.layout.addWidget(self.mainLabel) self.buttonBox = bb = BB(BB.Ok | BB.Cancel, Qt.Horizontal, self) bb.button(BB.Ok).setIcon(newIcon('done')) bb.button(BB.Cancel).setIcon(newIcon('undo')) bb.accepted.connect(self.accept) bb.rejected.connect(self.reject) # self.layout.addWidget(self.addBtn, 1, 1) self.layout.addWidget(bb) self.setLayout(self.layout)
def __init__(self, text="Enter text", parent=None): super(TextDialog, self).__init__(parent) self.edit = QLineEdit() self.edit.setText(text) self.edit.setValidator(labelValidator()) self.edit.editingFinished.connect(self.postProcess) layout = QVBoxLayout() layout.addWidget(self.edit) self.buttonBox = bb = BB(BB.Ok | BB.Cancel, Qt.Horizontal, self) bb.button(BB.Ok).setIcon(newIcon('done')) bb.button(BB.Cancel).setIcon(newIcon('undo')) bb.accepted.connect(self.validate) bb.rejected.connect(self.reject) layout.addWidget(bb) self.setLayout(layout)
def addLabel(self, txt=None, listHint=[], opt=True): self.count += 1 if opt: holderText = 'sub label' else: holderText = 'text label' singleLB = QGridLayout() edit = QLineEdit() if txt is None: edit.setPlaceholderText('{}'.format(holderText)) else: edit.setPlaceholderText('{}'.format(holderText)) edit.setText(txt) edit.setValidator(labelValidator()) model = QStringListModel() model.setStringList(listHint) completer = QCompleter() completer.setModel(model) edit.setCompleter(completer) edit.setFont(QFont('SansSerif', 15)) w_size = int(QFontMetrics(QFont('SansSerif', 15)).width(txt) * 1.6) edit.setMinimumWidth(max(w_size, 150)) singleLB.addWidget(edit, 0, 0) if not opt: # print('txt', txt) self.mainLabel = edit if opt: btn = QPushButton('Remove') btn.clicked.connect(lambda i: self.removeLabel(singleLB)) singleLB.addWidget(btn, 0, 1) self.listLabel.append(singleLB) self.layout_label.addLayout(singleLB, len(self.listLabel) - 1, 0)