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)
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])
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