Example #1
0
    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)
Example #2
0
    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)
Example #3
0
    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)
Example #4
0
    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)
Example #5
0
    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)
Example #6
0
    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)
Example #7
0
    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)
Example #8
0
def get_main_app(argv=[]):
    # main loop
    app = QApplication(argv)
    app.setApplicationName(__appname__)
    app.setWindowIcon(newIcon("app"))
    win = MainWindow()
    win.show()
    return app, win
Example #9
0
    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)
Example #10
0
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
Example #11
0
    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)
Example #12
0
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
Example #13
0
    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 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
Example #15
0
    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)
Example #16
0
    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)
Example #17
0
    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)
Example #18
0
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
Example #19
0
    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)
Example #20
0
    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)