def __init__(self, parent = None): super(ThumbnailDialog, self).__init__(parent) self.setBaseSize(300,350) self.fileName = QLabel(u'Save File Name:') self.fileName.setFixedHeight(20) self.fileName.setFixedWidth(200) self.fileName.setAlignment(Qt.AlignTop) self.imgName = QComboBox() self.imgThumbnail = QLabel() self.imgThumbnail.setFixedWidth(200) self.imgThumbnail.setFixedHeight(200) self.imgThumbnail.setScaledContents(True) self.imgThumbnail.setAlignment(Qt.AlignCenter) 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.save) bb.rejected.connect(self.reject) self.imgData = None self.isSaved = False layout = QVBoxLayout() layout.addWidget(self.fileName) layout.addWidget(self.imgName) layout.addWidget(self.imgThumbnail) 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) 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.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) 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, parent=None, listItem=None): super(DICOMDialog, self).__init__(parent) self.selected_idx = 0 model = QStringListModel() model.setStringList(listItem) completer = QCompleter() completer.setModel(model) layout = QVBoxLayout() 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) 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, text="Enter object label", parent=None, listItem=None): """ Create an instance of the labelDialog. :param text: The text to display at the top of the dialog box. :param parent: The parent of the dialog box. None by default. :param listItem: The listItem to select when the dialog box is displayed. """ 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="", parent=None): super(AlertDialog, self).__init__(parent) self.label = QLabel() self.label.setText(text) layout = QVBoxLayout() layout.addWidget(self.label) 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) 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()) #整个文本限制器在libs.lib里 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 get_main_app(argv=[]): # main loop app = QApplication(argv) app.setApplicationName(__appname__) app.setWindowIcon(newIcon("app")) win = MainWindow() win.show() return app, win
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.kind = "Horizontal" model = QStringListModel() model.setStringList(listItem) completer = QCompleter() completer.setModel(model) self.edit.setCompleter(completer) layout = QVBoxLayout() layout.addWidget(self.edit) button_V = QPushButton("doc", self) button_Reset = QPushButton("Reset State", self) # button_V.resize('aaa') self.buttonBox = bb = BB(BB.Ok | BB.Cancel, Qt.Horizontal, self) # self.buttonH_C = bb2 = BB(BB.) 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) layout.addWidget(button_V) layout.addWidget(button_Reset) # QObject.connect(button_V,SIGNAL("clicked()",self.buttonClicked) button_V.clicked.connect(self.buttonClicked) button_Reset.clicked.connect(self.buttonReset) 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.itemClicked.conn self.listWidget.itemDoubleClicked.connect(self.listItemDoubleClick) layout.addWidget(self.listWidget) self.setLayout(layout)
def get_main_app(argv=[]): app = QApplication(argv) app.setApplicationName(__appname__) app.setWindowIcon(newIcon("app")) win = MainWindow( argv[1] if len(argv) >= 2 else None, argv[2] if len(argv) >= 3 else os.path.join( os.path.dirname(sys.argv[0]), 'data', 'predefined_classes.txt')) win.show() return app, win
def __init__(self, text="Enter object label", parent=None, listItem=None): super(LabelDialog, self).__init__(parent) self.resize(280, 300) self.edit = QLineEdit() self.edit.setText(text) self.edit.setValidator(labelValidator()) self.edit.editingFinished.connect(self.postProcess) self.edit.textChanged.connect(self.searchLabel) # print(parent.size()) self.screen = QDesktopWidget().screenGeometry() # print(screen.width(), screen.height()) model = QStringListModel() model.setStringList(listItem) completer = QCompleter() completer.setModel(model) self.edit.setCompleter(completer) completer.activated.connect(self.setFocus_OK) 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.resize(280, 300) 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 get_main_app(argv=[]): """ Standard boilerplate Qt application code. Do everything but app.exec_() -- so that we can test the application in one thread """ app = QApplication(argv) app.setApplicationName(__appname__) app.setWindowIcon(newIcon("app")) # Tzutalin 201705+: Accept extra agruments to change predefined class file # Usage : labelImg.py image predefClassFile win = MainWindow() win.show() return app, win
def __init__(self, text="Enter object label", parent=None, listItem=None): super(TemplateDialog, self).__init__(parent) self.listItem = listItem self.removeItems = [] self.edit = QLineEdit() self.edit.setText(text) self.edit.setValidator(labelValidator()) self.edit.editingFinished.connect(self.postProcess) self.edit.setEnabled(False) self.edit.setFocusPolicy(Qt.NoFocus) model = QStringListModel() model.setStringList(listItem) completer = QCompleter() completer.setModel(model) self.edit.setCompleter(completer) layout = QVBoxLayout() layout.addWidget(self.edit) buttonDelete = QPushButton("&Delete") 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.addButton(buttonDelete, QDialogButtonBox.ActionRole) # bb.button(BB.Apply) buttonDelete.clicked.connect(self.delete) 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, text="Adjust window/level", parent=None): super(AdjustWindowLevelDialog, self).__init__(parent) self.windowEdit = QLineEdit() self.windowEdit.setText(text) self.windowEdit.setValidator(labelValidator()) self.windowEdit.editingFinished.connect(self.postProcess) self.levelEdit = QLineEdit() self.levelEdit.setText(text) self.levelEdit.setValidator(labelValidator()) self.levelEdit.editingFinished.connect(self.postProcess) layout = QVBoxLayout() layout.addWidget(self.windowEdit) layout.addWidget(self.levelEdit) 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): super(scaleDialog, self).__init__() self.unit2 = UNIT1 self.value1 = self.value2 = 1 self.setWindowTitle('Length Scale Transfiguration') self.setWindowModality(Qt.NonModal) # self.resize(300, 300) self.unit1LB = QLabel(UNIT1, self) self.lineEdit1 = QLineEdit(self) doubleValidator = QDoubleValidator(self) self.lineEdit1.setValidator(doubleValidator) self.unit1LB.setBuddy(self.lineEdit1) self.equalSignLB = QLabel('=', self) self.unit2CB = QComboBox(self) self.unit2CB.addItems((UNIT1, 'cm', 'mm')) self.lineEdit2 = QLineEdit(self) self.lineEdit2.setValidator(doubleValidator) 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) mainLayout = QGridLayout(self) mainLayout.addWidget(self.unit1LB, 0, 1) mainLayout.addWidget(self.lineEdit1, 0, 2, 1, 2) mainLayout.addWidget(self.equalSignLB, 1, 0) mainLayout.addWidget(self.unit2CB, 1, 1) mainLayout.addWidget(self.lineEdit2, 1, 2, 1, 2) mainLayout.addWidget(bb, 2, 1, 1, 3)
def __init__(self, text="Enter object label", text_numberOfObjects='Enter the number f objects', parent=None, listItem=None): super(LabelDialog, self).__init__(parent) self.edit_label = QLabel() self.edit_label.setText('Class:') self.edit = QLineEdit() self.edit.setText(text) self.edit.setValidator(labelValidator()) self.edit.editingFinished.connect(self.postProcess) layout = QVBoxLayout() layout.addWidget(self.edit_label) layout.addWidget(self.edit) self.edit_numberOfObjects_label = QLabel() self.edit_numberOfObjects_label.setText('The number Of Objects:') self.edit_numberOfObjects = QLineEdit() self.edit_numberOfObjects.setText(text_numberOfObjects) layout.addWidget(self.edit_numberOfObjects_label) layout.addWidget(self.edit_numberOfObjects) 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 get_main_app(argv=[]): """ Standard boilerplate Qt application code. Do everything but app.exec_() -- so that we can test the application in one thread """ app = QApplication(argv) app.setApplicationName(__appname__) app.setWindowIcon(newIcon("app")) # Tzutalin 201705+: Accept extra agruments to change predefined class file # Usage : labelImg.py image predefClassFile win = MainWindow( argv[1] if len(argv) >= 2 else None, argv[2] if len(argv) >= 3 else os.path.join( os.path.dirname(sys.argv[0]), 'data', 'predefined_classes.txt')) win.show() return app, win
def __init__(self, text="核验日志", parent=None): super(CheckTimeDialog, self).__init__(parent) self.resize(250, 150) self.center() self.setWindowTitle(text) self.label = QLabel() layout = QVBoxLayout() layout.addWidget(self.label) self.buttonBox = bb = BB(BB.Ok, Qt.Horizontal, self) bb.button(BB.Ok).setIcon(newIcon('done')) bb.accepted.connect(self.close) layout.addWidget(bb) self.setLayout(layout)
def updateFileMenu(self): currFilePath = self.filePath def exists(filename): return os.path.exists(filename) menu = self.menus.recentFiles menu.clear() files = [ f for f in self.recentFiles if f != currFilePath and exists(f) ] for i, f in enumerate(files): icon = newIcon('labels') action = QAction(icon, '&%d %s' % (i + 1, QFileInfo(f).fileName()), self) action.triggered.connect(partial(self.loadRecent, f)) menu.addAction(action)