def __init__(self, text="Enter object label", parent=None, predefined_classes=[]): super(LabelDialog, 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) # Martin Kersner, 2015/10/13 if predefined_classes: self.edit.setDisabled(True) widget = QWidget(self) letter_group = QButtonGroup(widget) radio_button = [] for label, label_idx in zip(predefined_classes, range(len(predefined_classes))): radio_button.append(QRadioButton(label)) radio_button[label_idx].clicked.connect(self.changeClass) layout.addWidget(radio_button[label_idx]) layout.addWidget(bb) self.setLayout(layout)
def __init__(self, text="Enter object label", parent=None): super(LabelDialog, self).__init__(parent) self.edit = QLineEdit() self.edit.setText(text) self.edit.setValidator(labelValidator()) self.edit.editingFinished.connect(self.postProcess) self.edit.setFixedWidth(600) 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.writeTypes = QGroupBox(self) # self.writeTypes.setExclusive(True) self.hwr = QRadioButton("&Handwritten") self.prn = QRadioButton("&Printed") self.mix = QRadioButton("&Mixed") # self.writeTypes.addButton(hwr) # self.writeTypes.addButton(prn) # self.writeTypes.addButton(mix) # layout.addWidget(self.writeTypes) layout.addWidget(self.hwr) layout.addWidget(self.prn) layout.addWidget(self.mix) # vbox.addStretch(100) # self.writeTypes.setLayout(vbox) self.setLayout(layout)
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) 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.listItem = listItem[:] if listItem is not None and len(listItem) > 0: self.listWidget = QListWidget(self) for item in listItem: #qDebug(item) self.listWidget.addItem(item) self.listWidget.itemDoubleClicked.connect(self.listItemClick) layout.addWidget(self.listWidget) # add a shortcut to choose the first label action = partial(newAction, self) choose1 = action('@Choose label', self.choose, ' ', None, u'Choose label') addActions(self.listWidget, (choose1, )) self.setLayout(layout)
def __init__(self, text="Enter object label", parent=None): super(LabelDialog, 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 __init__( self, text="Enter object label", parent=None, listItem=None, sub_label_items=None, label_fre_dic=None): super(LabelDialog, self).__init__(parent) self.edit = QLineEdit() self.edit.setText(text) self.edit.setValidator(labelValidator()) self.edit.editingFinished.connect(self.postProcess) layout = QVBoxLayout() self.label_fre_dic = label_fre_dic 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 sub_label_items: self.sub_labels_dic = sub_label_items self.sublistwidget = SubListWidget() if self.sub_labels_dic.keys() is not None and len(self.sub_labels_dic.keys()) > 0: self.listWidget = QListWidget(self) keys = sorted(self.sub_labels_dic.keys()) for item in keys: self.listWidget.addItem(item) self.listWidget.itemClicked.connect(self.listItemClicked) layout.addWidget(self.listWidget) elif listItem: sorted_labels = [] if self.label_fre_dic: print label_fre_dic sorted_labels = sorted( self.label_fre_dic, key=self.label_fre_dic.get, reverse=True) if listItem is not None and len(listItem) > 0: self.listWidget = QListWidget(self) for item in sorted_labels: self.listWidget.addItem(item) self.listWidget.itemDoubleClicked.connect( self.listItemDoubleClicked) layout.addWidget(self.listWidget) self.setLayout(layout)
def __init__(self, text="Enter object label", parent=None, listItem=None, sub_label_items=None, label_fre_dic=None): super(LabelDialog, self).__init__(parent) self.edit = QLineEdit() self.edit.setText(text) self.edit.setValidator(labelValidator()) self.edit.editingFinished.connect(self.postProcess) layout = QVBoxLayout() self.label_fre_dic = label_fre_dic 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 sub_label_items: self.sub_labels_dic = sub_label_items self.sublistwidget = SubListWidget() if self.sub_labels_dic.keys() is not None and len( self.sub_labels_dic.keys()) > 0: self.listWidget = QListWidget(self) keys = sorted(self.sub_labels_dic.keys()) for item in keys: self.listWidget.addItem(item) self.listWidget.itemClicked.connect(self.listItemClicked) layout.addWidget(self.listWidget) elif listItem: sorted_labels = [] if self.label_fre_dic: print label_fre_dic sorted_labels = sorted(self.label_fre_dic, key=self.label_fre_dic.get, reverse=True) if listItem is not None and len(listItem) > 0: self.listWidget = QListWidget(self) for item in sorted_labels: self.listWidget.addItem(item) self.listWidget.itemDoubleClicked.connect( self.listItemDoubleClicked) layout.addWidget(self.listWidget) self.setLayout(layout)
def __init__(self, text="Enter object label", parent=None): super(LabelDialog, self).__init__(parent) layout = QVBoxLayout() self.combo = QComboBox() self.combo.setEditable(True) self.combo.setAutoCompletion(True) self.combo.setValidator(labelValidator()) self.labelCandidates = [] for text in open('label_list.txt', 'r').readlines(): t = text.strip() if t != '': self.combo.addItem(t) self.labelCandidates.append(t) layout.addWidget(self.combo) 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 __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) 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.itemDoubleClicked.connect(self.listItemClick) layout.addWidget(self.listWidget) self.setLayout(layout)
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) self.desc = QLineEdit() #Use the below to support multi-line captions/descriptions #Show description textbox invisbily st can be dynamically resized #self.desc = QTextEdit() #self.desc.setAttribute(103) #self.desc.show() #self.set_desc_height() #self.desc.setValidator(labelValidator()) #self.desc.textChanged.connect(self.set_desc_height) layout = QVBoxLayout() layout.addWidget(QLabel('Label:')) layout.addWidget(self.edit) layout.addWidget(QLabel('Description:')) layout.addWidget(self.desc) 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.itemDoubleClicked.connect(self.listItemClick) layout.addWidget(self.listWidget) self.setLayout(layout)