Esempio n. 1
0
class Ui_Form(object):
    """default range slider form"""
    def setupUi(self, Form):
        Form.setObjectName(_fromUtf8("QRangeSlider"))
        Form.resize(300, 30)
        Form.setStyleSheet(_fromUtf8(DEFAULT_CSS))
        self.gridLayout = QGridLayout(Form)
        self.gridLayout.setContentsMargins(0, 0, 0, 0)
        self.gridLayout.setSpacing(0)
        self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
        self._splitter = QSplitter(Form)
        self._splitter.setMinimumSize(QtCore.QSize(0, 0))
        self._splitter.setMaximumSize(QtCore.QSize(16777215, 16777215))
        self._splitter.setOrientation(QtCore.Qt.Horizontal)
        self._splitter.setObjectName(_fromUtf8("splitter"))
        self._head = QGroupBox(self._splitter)
        self._head.setTitle(_fromUtf8(""))
        self._head.setObjectName(_fromUtf8("Head"))
        self._handle = QGroupBox(self._splitter)
        self._handle.setTitle(_fromUtf8(""))
        self._handle.setObjectName(_fromUtf8("Span"))
        self._tail = QGroupBox(self._splitter)
        self._tail.setTitle(_fromUtf8(""))
        self._tail.setObjectName(_fromUtf8("Tail"))
        self.gridLayout.addWidget(self._splitter, 0, 0, 1, 1)

        QtCore.QMetaObject.connectSlotsByName(Form)
Esempio n. 2
0
    def setup_center_ui(self):
        """
        Set up the central widget area, which includes:
            DatasetWidget
            LogWidget
        """
        self.setWindowTitle(f"CLARITE v{self.appctx.VERSION}")
        self.setWindowIcon(QIcon(":/images/clarite_logo.png"))

        self.setContentsMargins(10, 10, 10, 10)

        # Set up the central widget
        splitter = QSplitter(self)
        splitter.setOrientation(Qt.Vertical)
        splitter.setMinimumSize(800, 600)
        self.setCentralWidget(splitter)

        # Add the main sections
        dataset_widget = DatasetWidget(parent=self)
        splitter.addWidget(dataset_widget)

        self.log_tabs = QTabWidget(parent=self)
        self.log_tabs.setTabPosition(QTabWidget.North)
        splitter.addWidget(self.log_tabs)

        # Set the initial sizes (and relative ratio) of the two groups
        splitter.setSizes([500, 100])
Esempio n. 3
0
class Ui_Form(object):
    """default range slider form"""
    def setupUi(self, Form):
        Form.setObjectName(_fromUtf8("QRangeSlider"))
        Form.resize(300, 30)
        Form.setStyleSheet(_fromUtf8(DEFAULT_CSS))
        self.gridLayout = QGridLayout(Form)
        # self.gridLayout.setMargin(0)
        self.gridLayout.setSpacing(0)
        self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
        self._splitter = QSplitter(Form)
        self._splitter.setMinimumSize(QtCore.QSize(0, 0))
        self._splitter.setMaximumSize(QtCore.QSize(16777215, 16777215))
        self._splitter.setOrientation(QtCore.Qt.Horizontal)
        self._splitter.setObjectName(_fromUtf8("splitter"))
        self._head = QGroupBox(self._splitter)
        self._head.setTitle(_fromUtf8(""))
        self._head.setObjectName(_fromUtf8("Head"))
        self._handle = QGroupBox(self._splitter)
        self._handle.setTitle(_fromUtf8(""))
        self._handle.setObjectName(_fromUtf8("Span"))
        self._tail = QGroupBox(self._splitter)
        self._tail.setTitle(_fromUtf8(""))
        self._tail.setObjectName(_fromUtf8("Tail"))
        self.gridLayout.addWidget(self._splitter, 0, 0, 1, 1)

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        # encoding = QApplication.UnicodeUTF8
        # Form.setWindowTitle(QApplication.translate("QRangeSlider",
        #                                                  "QRangeSlider",
        #                                                  None, encoding))
        pass
class ImageConverter(QMainWindow):
    """
    image converter window
    """
    def __init__(self, parent=None):
        super(ImageConverter, self).__init__(parent)
        self.cwd = os.getcwd()
        self.root_path = os.path.join(os.path.expanduser("~"), 'Desktop')
        self.open_img_list = []
        self._init_menu()
        self._init_ui()
        self.setGeometry(200, 100, 1500, 900)

    def _init_menu(self):
        self.menu = self.menuBar()
        self.fileMenu = self.menu.addMenu('文件')
        self.editMenu = self.menu.addMenu('编辑')
        self.viewMenu = self.menu.addMenu('视图')
        self.toolMenu = self.menu.addMenu('工具')

        self.fileMenu.addAction('打开图片', self.slot_open_img, 'Ctrl+o')
        self.fileMenu.addAction('保存图片', self.slot_save_img, 'Ctrl+s')
        self.fileMenu.addAction('退出工具', qApp.quit, 'Ctrl+q')

    def _init_ui(self):
        vlay_main = QVBoxLayout()
        vlay_main.setSpacing(0)
        vlay_main.setContentsMargins(0, 0, 0, 0)
        self.splitter = QSplitter(Qt.Horizontal)
        self.splitter.setMinimumSize(1200, 800)

        self._init_display()
        self._init_attr()
        vlay_main.addWidget(self.splitter)
        self.setCentralWidget(QWidget(self))
        self.centralWidget().setLayout(vlay_main)
        self.setStyleSheet("background: white")

    def _init_display(self):
        self.wg_display = QWidget(self.splitter)
        vlay_display = QHBoxLayout()
        vlay_display.setSpacing(0)
        vlay_display.setContentsMargins(0, 0, 0, 0)
        self._init_tool_bar()
        vlay_display.addWidget(self.wg_tool_bar)

        self.label_shower = QLabel()
        self.label_shower.setMinimumSize(600, 600)
        self.label_shower.setStyleSheet("background: #3366CC")
        vlay_display.addWidget(self.label_shower)
        self.wg_display.setLayout(vlay_display)

    def _init_tool_bar(self):
        self.wg_tool_bar = QWidget()
        self.wg_tool_bar.setFixedWidth(30)
        self.wg_tool_bar.setStyleSheet("background: #FF6633")
        vlay_tool = QVBoxLayout(self.wg_tool_bar)
        vlay_tool.setContentsMargins(0, 0, 0, 0)

    def _init_attr(self):
        right_group_box = QGroupBox(self.splitter)
        right_group_box.setMinimumWidth(300)
        right_vlay = QVBoxLayout()
        right_group_box.setLayout(right_vlay)
        right_vlay.addWidget(QGroupBox('基本尺寸'))
        right_vlay.addWidget(QGroupBox('详细尺寸'))

    def slot_open_img(self):
        img_path = self.choose_img_file()
        if img_path and img_path not in self.open_img_list:
            np_img = self.read_img_2_np(img_path)

    def choose_img_file(self):
        file_path, _ = QFileDialog.getOpenFileName(
            self, '选择图片', self.root_path, '*.jpg;*.jpeg;*.png;*.bmp;')
        if file_path:
            self.root_path = os.path.dirname(file_path)
            return file_path
        else:
            return False

    @staticmethod
    def read_img_2_np(img_path):
        for ch in img_path:
            if u'\u4e00' <= ch <= u'\u9fff':
                return cv2.imdecode(np.fromfile(img_path, dtype=np.uint8), -1)
        return cv2.imread(img_path, -1)

    def slot_save_img(self):
        pass