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)
示例#2
0
    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)
示例#3
0
    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)
示例#4
0
    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)