def _build(self): """ build name widget """ self.setObjectName("window_menu_frame") _layout = QtWidgets.QHBoxLayout(self) _layout.setSpacing(4) _layout.setContentsMargins(8, 8, 8, 8) # title button self.title_button = QtWidgets.QPushButton() _layout.addWidget(self.title_button) self.title_button.setObjectName("attr_title_button") self.title_button.setMinimumWidth(120) self.title_button.setIcon( QtGui.QIcon( resource.get("icons", "{}.png").format(self._entity_type))) self.title_button.setText("{}{}".format( language.word(self._entity_type), language.word("name"))) # name lineedit self.name_lineedit = lineedit.LineEdit() _layout.addWidget(self.name_lineedit) self.name_lineedit.set_tip(language.word("required")) # star button self.star_button = QtWidgets.QPushButton() _layout.addWidget(self.star_button) self.star_button.setObjectName("attr_title_button") self.star_button.setIcon(QtGui.QIcon(resource.get("icons", "must.png"))) self.star_button.setMaximumSize(20, 20)
def _set_pin(self): self._is_pin = not self._is_pin if self._is_pin: self.__pin_button.setIcon( QtGui.QIcon(resource.get("icons", "pin_hover.png"))) else: self.__pin_button.setIcon( QtGui.QIcon(resource.get("icons", "pin.png")))
def set_pin(self, value): self._is_pin = value if self._is_pin: self.__pin_button.setIcon( QtGui.QIcon(resource.get("icons", "pin_hover.png"))) else: self.__pin_button.setIcon( QtGui.QIcon(resource.get("icons", "pin.png")))
def __init__(self, parent=None): super(ItemDelegate, self).__init__(parent) self._spacing = 4 self._file_pixmap = QtGui.QPixmap( resource.get("icons", "file_hover.png")) self._file_pixmap = self._file_pixmap.scaled( 20, 20, QtCore.Qt.KeepAspectRatio, QtCore.Qt.SmoothTransformation)
def _build(self): """ build name widget """ self.setObjectName("window_menu_frame") _layout = QtWidgets.QHBoxLayout(self) _layout.setSpacing(4) _layout.setContentsMargins(8, 8, 8, 8) self.title_widget = QtWidgets.QWidget() self.title_layout = QtWidgets.QVBoxLayout(self.title_widget) self.title_layout.setSpacing(0) self.title_layout.setContentsMargins(0, 0, 0, 0) # title button # self.title_button = QtWidgets.QPushButton() self.title_button.setObjectName("attr_title_button") self.title_button.setMinimumWidth(120) self.title_button.setIcon( QtGui.QIcon( resource.get("icons", "{}.png".format(self._entity_type)))) self.title_button.setText("{}{}".format( language.word(self._entity_type), language.word("description"))) self.title_layout.addWidget(self.title_button) self.title_layout.addStretch(True) # name lineedit # self.description_textedit = QtWidgets.QTextEdit() _layout.addWidget(self.title_widget) _layout.addWidget(self.description_textedit)
def _build(self): """ build name widget """ _layout = QtWidgets.QHBoxLayout(self) self.title_widget = QtWidgets.QWidget() self.title_widget.setFixedWidth(120) _layout.addWidget(self.title_widget) self.title_layout = QtWidgets.QVBoxLayout(self.title_widget) self.title_layout.setSpacing(0) self.title_layout.setContentsMargins(0,0,0,0) self.title_button = QtWidgets.QPushButton() self.title_layout.addWidget(self.title_button) self.title_button.setObjectName("attr_title_button") self.title_button.setIcon(QtGui.QIcon(resource.get("icons", "{}.png".format(self._entity_type)))) self.title_button.setText("{}".format(language.word(self._entity_type))) self.title_layout.addStretch(True) # name lineedit self.color_widget = colorcardwidget.ColorCardWidget() _layout.addWidget(self.color_widget) # # star button # self.star_button = QtWidgets.QPushButton() # _layout.addWidget(self.star_button) # self.star_button.setObjectName("attr_title_button") # self.star_button.setIcon(QtGui.QIcon(resource.get("icons", "must.png"))) # self.star_button.setMaximumSize(20,20)
def __init__(self, parent=None): super(ItemDelegate, self).__init__(parent) self._spacing = 15 self._spacing_height = 6 self._star_bright_pixmap = QtGui.QPixmap( resource.get("icons", "star_on.png"))
def _build(self): self.setMaximumWidth(200) _layout = QtWidgets.QVBoxLayout(self) _layout.setSpacing(0) _layout.setContentsMargins(0,0,0,0) # filter type widget self.filter_type_widget = QtWidgets.QFrame() _layout.addWidget(self.filter_type_widget) self.filter_type_layout = QtWidgets.QVBoxLayout(self.filter_type_widget) self.filter_type_layout.setSpacing(0) self.filter_type_layout.setContentsMargins(0,0,0,0) # title button self.filter_type_name_button = QtWidgets.QPushButton() self.filter_type_name_button.setObjectName("title_button") self.filter_type_name_button.setMaximumHeight(25) self.filter_type_name_button.setText(u"资产类型检索") self.filter_type_name_button.setIcon(QtGui.QIcon(resource.get("icons","filter.png"))) self.filter_type_layout.addWidget(self.filter_type_name_button) # type widget self.filter_type_checkbox_widget = QtWidgets.QFrame() self.filter_type_layout.addWidget(self.filter_type_checkbox_widget) self.filter_type_checkbox_layout = QtWidgets.QVBoxLayout(self.filter_type_checkbox_widget) self.filter_type_checkbox_layout.setContentsMargins(20,0,0,0) # asset task step self.step_widget = QtWidgets.QFrame() _layout.addWidget(self.step_widget) self.step_layout = QtWidgets.QVBoxLayout(self.step_widget) self.step_layout.setSpacing(0) self.step_layout.setContentsMargins(0,0,0,0) self.step_name_button = QtWidgets.QPushButton() self.step_name_button.setObjectName("title_button") self.step_name_button.setMaximumHeight(25) self.step_name_button.setText(u"资产任务步骤") self.step_name_button.setIcon(QtGui.QIcon(resource.get("icons","filter.png"))) self.step_layout.addWidget(self.step_name_button) # step checkbox widget self.step_checkbox_widget = QtWidgets.QFrame() self.step_checkbox_layout = QtWidgets.QVBoxLayout(self.step_checkbox_widget) self.step_checkbox_layout.setContentsMargins(20,0,0,0) self.step_group = QtWidgets.QButtonGroup(self.step_checkbox_widget) self.step_layout.addWidget(self.step_checkbox_widget) _layout.addStretch(True)
def custom_context_menu(self, pos): """ 自定义右击菜单 """ _menu = QtWidgets.QMenu(self) _current_index = self.indexAt(pos) _index = _current_index.sibling(_current_index.row(), 0) if _index.isValid(): _menu.addAction(QtGui.QIcon(resource.get("icons", "publish.png")), u"上传文件", self._upload) _menu.exec_(QtGui.QCursor().pos())
def _build(self): _layout = QtWidgets.QVBoxLayout(self) _layout.setSpacing(0) _layout.setContentsMargins(0, 0, 0, 0) self.head_widget = QtWidgets.QFrame() _layout.addWidget(self.head_widget) self.head_widget.setMinimumHeight(30) self.head_widget.setObjectName("attr_frame") self.head_layout = QtWidgets.QHBoxLayout(self.head_widget) self.head_layout.setSpacing(0) self.head_layout.setContentsMargins(0, 0, 0, 0) # name self.name_button = QtWidgets.QPushButton() self.name_button.setObjectName("icon_button") self.name_button.setText(language.word("library")) self.name_button.setIcon( QtGui.QIcon(resource.get("icons", "library.png"))) self.name_button.setFixedHeight(30) self.head_layout.addWidget(self.name_button) self.head_layout.addStretch(True) # 刷新 self.refresh_button = button.IconButton( self, resource.get("icons", "refresh.png"), resource.get("icons", "refresh_hover.png"), resource.get("icons", "refresh_pressed.png")) self.refresh_button.setFixedSize(30, 30) self.head_layout.addWidget(self.refresh_button) # search lineedit self.search_lineedit = lineedit.SearchLineEdit() _layout.addWidget(self.search_lineedit) self.search_lineedit.setFixedHeight(30) # tree view self.list_view = listview.ListView() self.list_view.setItemDelegate( itemdelegate.ItemDelegate(self.list_view)) _layout.addWidget(self.list_view) self.list_model = listmodel.ListModel([]) self.list_proxy_model = listmodel.ListFilterProxyModel() self.list_view.setModel(self.list_proxy_model)
def _build(self): """ build operation widget """ self.setMaximumHeight(40) _layout = QtWidgets.QVBoxLayout(self) _layout.setSpacing(2) _layout.setContentsMargins(2, 4, 2, 2) # check widget # check current file self.check_file_button = QtWidgets.QPushButton() self.check_file_button.setMinimumSize(100, 40) self.check_file_button.setText(u"检测当前文件") # task widget self.task_widget = QtWidgets.QFrame() _layout.addWidget(self.task_widget) self.task_layout = QtWidgets.QHBoxLayout(self.task_widget) self.task_layout.setSpacing(2) self.task_layout.setContentsMargins(2, 2, 2, 2) # project self.project_button = button.IconButton( self, resource.get("icons", "project.png"), resource.get("icons", "project.png"), resource.get("icons", "project.png")) self.task_layout.addWidget(self.project_button) self.project_button.setText("未设置项目") self.project_button.setObjectName("task_link_button") # entity name code self.link_button = button.IconButton(self, resource.get("icons", "link.png"), resource.get("icons", "link.png"), resource.get("icons", "link.png")) self.task_layout.addWidget(self.link_button) self.link_button.setText("未设置当前任务") self.link_button.setObjectName("task_link_button") # task self.task_button = button.IconButton(self, resource.get("icons", "task.png"), resource.get("icons", "task.png"), resource.get("icons", "task.png")) self.task_layout.addWidget(self.task_button) self.task_button.setText("未设置当前任务") self.task_button.setObjectName("task_link_button") self.task_layout.addStretch(True)
def custom_context_menu(self, pos): """ 自定义右击菜单 """ _menu = QtWidgets.QMenu(self) _index = self.currentIndex() _library_id = _index.data().get("LibraryId") # _index = _current_index.sibling(_current_index.row(),0) if _index.isValid(): _menu.addSeparator() _menu.addAction(QtGui.QIcon(resource.get("icons", "remove.png")), "移出预览", self._remove) _menu.exec_(QtGui.QCursor().pos())
def _build(self): """ build widget """ self.setFixedHeight(40) self.setObjectName("library_operation_frame") _layout = QtWidgets.QHBoxLayout(self) _layout.setSpacing(2) _layout.setContentsMargins(2, 2, 2, 2) # # new button # self.new_button = button.IconButton( self, # resource.get("icons", "add.png"), # resource.get("icons", "add_hover.png"), # resource.get("icons", "add_pressed.png")) # self.new_button.setText(language.word("new object")) # self.new_button.setMaximumHeight(25) # _layout.addWidget(self.new_button) _layout.addStretch(True) # search lineedit self.search_lineedit = lineedit.SearchLineEdit() self.search_lineedit.setFixedSize(200, 25) _layout.addWidget(self.search_lineedit) # refresh button self.refresh_button = button.IconButton( self, resource.get("icons", "refresh.png"), resource.get("icons", "refresh_hover.png"), resource.get("icons", "refresh_pressed.png")) #self.refresh_button.setText(language.word("refresh")) self.refresh_button.setFixedSize(30, 30) _layout.addWidget(self.refresh_button) # add line _line = QtWidgets.QFrame() _line.setMinimumWidth(1) _line.setStyleSheet("QFrame{background-color: #E6E7EA}") _layout.addWidget(_line)
def __init__(self, parent=None): super(ItemDelegate, self).__init__(parent) self._spacing = 4 self._extend_width = 10 self._font = QtGui.QFont("Microsoft YaHei UI", 9) self._background_color = parent.palette().color( parent.backgroundRole()) self._file_pixmap = QtGui.QPixmap( resource.get("icons", "file_hover.png")) self._file_pixmap = self._file_pixmap.scaled( 20, 20, QtCore.Qt.KeepAspectRatio, QtCore.Qt.SmoothTransformation)
def _build(self): """ build name widget """ _layout = QtWidgets.QHBoxLayout(self) _layout.setSpacing(4) _layout.setContentsMargins(8,8,8,8) self.title_widget = QtWidgets.QWidget() self.title_widget.setFixedWidth(120) _layout.addWidget(self.title_widget) self.title_layout = QtWidgets.QVBoxLayout(self.title_widget) self.title_layout.setSpacing(0) self.title_layout.setContentsMargins(0,0,0,0) self.title_button = QtWidgets.QPushButton() self.title_layout.addWidget(self.title_button) self.title_button.setObjectName("attr_title_button") self.title_button.setIcon(QtGui.QIcon(resource.get("icons", "{}.png".format(self._entity_type)))) self.title_button.setText("{}".format(language.word(self._entity_type))) self.title_layout.addStretch(True)
def _build(self): self.resize(160, 200) #self.setMaximumWidth(300) _layout = QtWidgets.QVBoxLayout(self) _layout.setSpacing(2) _layout.setContentsMargins(0, 0, 0, 0) # ================================================================================== # asset property widget # ================================================================================== # project step widget self.step_widget = QtWidgets.QFrame() _layout.addWidget(self.step_widget) self.step_widget.setMinimumHeight(25) self.step_layout = QtWidgets.QVBoxLayout(self.step_widget) self.step_layout.setSpacing(0) self.step_layout.setContentsMargins(0, 0, 0, 0) # name button self.step_button = QtWidgets.QPushButton() self.step_button.setText(u"项目步骤") self.step_button.setIcon(QtGui.QIcon(resource.get("icons", "step.png"))) self.step_button.setObjectName("title_button") self.step_layout.addWidget(self.step_button) # version listwidget self.version_listwidget = versionlistwidget.listwidget.ListWidget() _layout.addWidget(self.version_listwidget) # description widget self.description_textedit = QtWidgets.QTextEdit() _layout.addWidget(self.description_textedit) self.description_textedit.setFrameShape(QtWidgets.QFrame.NoFrame) self.description_textedit.setEnabled(False) self.description_textedit.setMaximumHeight(60) self.description_textedit.setPlaceholderText("version description") # operation widget self.operation_widget = QtWidgets.QFrame() _layout.addWidget(self.operation_widget) self.operation_widget.setObjectName("operation_widget") self.operation_widget.setMinimumHeight(30) self.operation_layout = QtWidgets.QVBoxLayout(self.operation_widget) self.operation_layout.setContentsMargins(0, 0, 0, 0)
def _build(self): """ build ass user widget """ self.resize(400, 600) self.set_title(language.word("new library entity"), resource.get("icons", "library.png")) # library title self.title_button = QtWidgets.QPushButton() self.add_content_widget(self.title_button) # content widgets self.content_widget = QtWidgets.QWidget() self.add_content_widget(self.content_widget) self.content_layout = QtWidgets.QVBoxLayout(self.content_widget) # name widget self.name_widget = namewidget.NameWidget("library entity") self.content_layout.addWidget(self.name_widget) # code widget self.code_widget = codewidget.CodeWidget("library entity") self.content_layout.addWidget(self.code_widget) # category widget # self.category_widget = categorywidget # description widget self.description_widget = descriptionwidget.DescriptionWidget( "library entity") self.content_layout.addWidget(self.description_widget) self.content_layout.addStretch(True) # tab order self.setTabOrder(self.name_widget.order_widget(), self.code_widget.order_widget())
def _build(self): self.resize(400, 600) self.set_title(language.word("new category"), resource.get("icons", "category.png")) # library title self.title_button = QtWidgets.QPushButton() self.add_content_widget(self.title_button) # content widgets self.content_widget = QtWidgets.QWidget() self.add_content_widget(self.content_widget) self.content_layout = QtWidgets.QVBoxLayout(self.content_widget) # name widget self.name_widget = namewidget.NameWidget("category") self.content_layout.addWidget(self.name_widget) # code widget self.code_widget = codewidget.CodeWidget("category") self.content_layout.addWidget(self.code_widget) # color widget self.color_widget = colorwidget.ColorWidget("color") self.color_widget.setFixedHeight(200) self.content_layout.addWidget(self.color_widget) # description widget self.description_widget = descriptionwidget.DescriptionWidget( "category") self.content_layout.addWidget(self.description_widget) self.content_layout.addStretch(True) # tab order self.setTabOrder(self.name_widget.order_widget(), self.code_widget.order_widget())
def _build(self): self.setMaximumWidth(200) _layout = QtWidgets.QVBoxLayout(self) _layout.setSpacing(0) _layout.setContentsMargins(0, 0, 0, 0) # asset task step self.step_widget = QtWidgets.QFrame() _layout.addWidget(self.step_widget) self.step_layout = QtWidgets.QVBoxLayout(self.step_widget) self.step_layout.setSpacing(0) self.step_layout.setContentsMargins(0, 0, 0, 0) # asset self.asset_step_name_button = QtWidgets.QPushButton() self.asset_step_name_button.setObjectName("title_button") self.asset_step_name_button.setMaximumHeight(25) self.asset_step_name_button.setText(language.word("asset")) self.asset_step_name_button.setIcon( QtGui.QIcon(resource.get("icons", "asset.png"))) self.step_layout.addWidget(self.asset_step_name_button) self.asset_step_checkbox_widget = QtWidgets.QFrame() self.asset_step_checkbox_layout = QtWidgets.QVBoxLayout( self.asset_step_checkbox_widget) self.asset_step_checkbox_layout.setContentsMargins(20, 0, 0, 0) self.step_layout.addWidget(self.asset_step_checkbox_widget) # assembly self.assembly_step_name_button = QtWidgets.QPushButton() self.assembly_step_name_button.setObjectName("title_button") self.assembly_step_name_button.setMaximumHeight(25) self.assembly_step_name_button.setText(language.word("assembly")) self.assembly_step_name_button.setIcon( QtGui.QIcon(resource.get("icons", "assembly.png"))) self.step_layout.addWidget(self.assembly_step_name_button) self.assembly_step_checkbox_widget = QtWidgets.QFrame() self.assembly_step_checkbox_layout = QtWidgets.QVBoxLayout( self.assembly_step_checkbox_widget) self.assembly_step_checkbox_layout.setContentsMargins(20, 0, 0, 0) self.step_layout.addWidget(self.assembly_step_checkbox_widget) # sequence self.sequence_step_name_button = QtWidgets.QPushButton() self.sequence_step_name_button.setObjectName("title_button") self.sequence_step_name_button.setMaximumHeight(25) self.sequence_step_name_button.setText(language.word("sequence")) self.sequence_step_name_button.setIcon( QtGui.QIcon(resource.get("icons", "sequence.png"))) self.step_layout.addWidget(self.sequence_step_name_button) self.sequence_step_checkbox_widget = QtWidgets.QFrame() self.sequence_step_checkbox_layout = QtWidgets.QVBoxLayout( self.sequence_step_checkbox_widget) self.sequence_step_checkbox_layout.setContentsMargins(20, 0, 0, 0) self.step_layout.addWidget(self.sequence_step_checkbox_widget) # shot self.shot_step_name_button = QtWidgets.QPushButton() self.shot_step_name_button.setObjectName("title_button") self.shot_step_name_button.setMaximumHeight(25) self.shot_step_name_button.setText(language.word("shot")) self.shot_step_name_button.setIcon( QtGui.QIcon(resource.get("icons", "shot.png"))) self.step_layout.addWidget(self.shot_step_name_button) self.shot_step_checkbox_widget = QtWidgets.QFrame() self.shot_step_checkbox_layout = QtWidgets.QVBoxLayout( self.shot_step_checkbox_widget) self.shot_step_checkbox_layout.setContentsMargins(20, 0, 0, 0) self.step_layout.addWidget(self.shot_step_checkbox_widget) # # step checkbox widget # self.step_checkbox_widget = QtWidgets.QFrame() # self.step_checkbox_layout = QtWidgets.QVBoxLayout(self.step_checkbox_widget) # self.step_checkbox_layout.setContentsMargins(20,0,0,0) self.step_group = QtWidgets.QButtonGroup(self) # self.step_layout.addWidget(self.step_checkbox_widget) _layout.addStretch(True)
def _build(self): self.setMaximumWidth(200) _layout = QtWidgets.QVBoxLayout(self) _layout.setSpacing(0) _layout.setContentsMargins(0, 0, 0, 0) # # filter type widget # self.filter_type_widget = QtWidgets.QFrame() # _layout.addWidget(self.filter_type_widget) # self.filter_type_layout = QtWidgets.QVBoxLayout(self.filter_type_widget) # self.filter_type_layout.setSpacing(0) # self.filter_type_layout.setContentsMargins(0,0,0,0) # # title button # self.filter_project_step_button = QtWidgets.QPushButton() # self.filter_project_step_button.setMaximumHeight(25) # self.filter_project_step_button.setText(u"任务步骤检索") # self.filter_project_step_button.setIcon(QtGui.QIcon(resource.get("icons","filter.png"))) # self.filter_type_layout.addWidget(self.filter_project_step_button) # # type widget # self.filter_project_step_checkbox_widget = QtWidgets.QFrame() # self.filter_type_layout.addWidget(self.filter_project_step_checkbox_widget) # self.filter_project_step_checkbox_layout = QtWidgets.QVBoxLayout(self.filter_project_step_checkbox_widget) # self.filter_project_step_checkbox_layout.setContentsMargins(20,0,0,0) # self.step_name_button = QtWidgets.QPushButton() # self.step_name_button.setMaximumHeight(25) # self.step_name_button.setText(u"任务步骤") # self.step_name_button.setIcon(QtGui.QIcon(resource.get("icons","filter.png"))) # _layout.addWidget(self.step_name_button) # asset task step self.step_widget = QtWidgets.QFrame() _layout.addWidget(self.step_widget) self.step_layout = QtWidgets.QVBoxLayout(self.step_widget) self.step_layout.setSpacing(0) self.step_layout.setContentsMargins(0, 0, 0, 0) # asset self.asset_step_name_button = QtWidgets.QPushButton() self.asset_step_name_button.setMaximumHeight(25) self.asset_step_name_button.setText( language.word("task step for asset")) self.asset_step_name_button.setObjectName("attr_name_button") self.asset_step_name_button.setIcon( QtGui.QIcon(resource.get("icons", "asset.png"))) self.step_layout.addWidget(self.asset_step_name_button) self.asset_step_checkbox_widget = QtWidgets.QFrame() self.asset_step_checkbox_layout = QtWidgets.QVBoxLayout( self.asset_step_checkbox_widget) self.asset_step_checkbox_layout.setContentsMargins(20, 0, 0, 0) self.step_layout.addWidget(self.asset_step_checkbox_widget) # # sequence # self.sequence_step_name_button = QtWidgets.QPushButton() # self.sequence_step_name_button.setMaximumHeight(25) # self.sequence_step_name_button.setText(language.word("sequence")) # self.sequence_step_name_button.setIcon(QtGui.QIcon(resource.get("icons","sequence.png"))) # self.step_layout.addWidget(self.sequence_step_name_button) # self.sequence_step_checkbox_widget = QtWidgets.QFrame() # self.sequence_step_checkbox_layout = QtWidgets.QVBoxLayout(self.sequence_step_checkbox_widget) # self.sequence_step_checkbox_layout.setContentsMargins(20,0,0,0) # self.step_layout.addWidget(self.sequence_step_checkbox_widget) # # shot # self.shot_step_name_button = QtWidgets.QPushButton() # self.shot_step_name_button.setMaximumHeight(25) # self.shot_step_name_button.setText(language.word("shot")) # self.shot_step_name_button.setIcon(QtGui.QIcon(resource.get("icons","shot.png"))) # self.step_layout.addWidget(self.shot_step_name_button) # self.shot_step_checkbox_widget = QtWidgets.QFrame() # self.shot_step_checkbox_layout = QtWidgets.QVBoxLayout(self.shot_step_checkbox_widget) # self.shot_step_checkbox_layout.setContentsMargins(20,0,0,0) # self.step_layout.addWidget(self.shot_step_checkbox_widget) # # step checkbox widget # self.step_checkbox_widget = QtWidgets.QFrame() # self.step_checkbox_layout = QtWidgets.QVBoxLayout(self.step_checkbox_widget) # self.step_checkbox_layout.setContentsMargins(20,0,0,0) self.step_group = QtWidgets.QButtonGroup(self) # self.step_layout.addWidget(self.step_checkbox_widget) _layout.addStretch(True) # update all self.update_project_step_button = QtWidgets.QPushButton() self.update_project_step_button.setMinimumSize(100, 40) self.update_project_step_button.setText(u"任务步骤批量更新") _layout.addWidget(self.update_project_step_button)
def _build(self): self.setMaximumWidth(240) _layout = QtWidgets.QVBoxLayout(self) _layout.setSpacing(0) _layout.setContentsMargins(0,0,0,0) # # asset task step # self.step_widget = QtWidgets.QFrame() # _layout.addWidget(self.step_widget) # self.step_layout = QtWidgets.QVBoxLayout(self.step_widget) # self.step_layout.setSpacing(0) # self.step_layout.setContentsMargins(0,0,0,0) # self.tab_widget = QtWidgets.QTabWidget() # self.step_layout.addWidget(self.tab_widget) # self.tab_widget.setStyleSheet("QTabBar::tab{height:24px;}") # asset frame self.asset_widget = QtWidgets.QFrame() # self.tab_widget.addTab(self.asset_widget, u"资产") _layout.addWidget(self.asset_widget) self.asset_layout = QtWidgets.QVBoxLayout(self.asset_widget) self.asset_layout.setSpacing(0) self.asset_layout.setContentsMargins(0,0,0,0) self.asset_step_name_button = QtWidgets.QPushButton() self.asset_step_name_button.setObjectName("title_button") self.asset_step_name_button.setMaximumHeight(25) self.asset_step_name_button.setText(language.word("asset")) self.asset_step_name_button.setIcon(QtGui.QIcon(resource.get("icons","asset.png"))) self.asset_layout.addWidget(self.asset_step_name_button) self.asset_step_checkbox_widget = QtWidgets.QFrame() self.asset_step_checkbox_layout = QtWidgets.QVBoxLayout(self.asset_step_checkbox_widget) self.asset_step_checkbox_layout.setContentsMargins(20,0,0,0) self.asset_layout.addWidget(self.asset_step_checkbox_widget) self.asset_layout.addStretch(True) # assembly self.assembly_widget = QtWidgets.QFrame() # self.tab_widget.addTab(self.assembly_widget, u"场景") _layout.addWidget(self.assembly_widget) self.assembly_layout = QtWidgets.QVBoxLayout(self.assembly_widget) self.assembly_layout.setSpacing(0) self.assembly_layout.setContentsMargins(0,0,0,0) self.assembly_step_name_button = QtWidgets.QPushButton() self.assembly_step_name_button.setObjectName("title_button") self.assembly_step_name_button.setMaximumHeight(25) self.assembly_step_name_button.setText(language.word("assembly")) self.assembly_step_name_button.setIcon(QtGui.QIcon(resource.get("icons","assembly.png"))) self.assembly_layout.addWidget(self.assembly_step_name_button) self.assembly_step_checkbox_widget = QtWidgets.QFrame() self.assembly_step_checkbox_layout = QtWidgets.QVBoxLayout(self.assembly_step_checkbox_widget) self.assembly_step_checkbox_layout.setContentsMargins(20,0,0,0) self.assembly_layout.addWidget(self.assembly_step_checkbox_widget) self.assembly_layout.addStretch(True) # sequence self.sequence_widget = QtWidgets.QFrame() # self.tab_widget.addTab(self.sequence_widget, u"场次") _layout.addWidget(self.sequence_widget) self.sequence_layout = QtWidgets.QVBoxLayout(self.sequence_widget) self.sequence_layout.setSpacing(0) self.sequence_layout.setContentsMargins(0,0,0,0) self.sequence_step_name_button = QtWidgets.QPushButton() self.sequence_step_name_button.setObjectName("title_button") self.sequence_step_name_button.setMaximumHeight(25) self.sequence_step_name_button.setText(language.word("sequence")) self.sequence_step_name_button.setIcon(QtGui.QIcon(resource.get("icons","sequence.png"))) self.sequence_layout.addWidget(self.sequence_step_name_button) self.sequence_step_checkbox_widget = QtWidgets.QFrame() self.sequence_step_checkbox_layout = QtWidgets.QVBoxLayout(self.sequence_step_checkbox_widget) self.sequence_step_checkbox_layout.setContentsMargins(20,0,0,0) self.sequence_layout.addWidget(self.sequence_step_checkbox_widget) self.sequence_layout.addStretch(True) # shot self.shot_widget = QtWidgets.QFrame() # self.tab_widget.addTab(self.shot_widget, u"镜头") _layout.addWidget(self.shot_widget) self.shot_layout = QtWidgets.QVBoxLayout(self.shot_widget) self.shot_layout.setSpacing(0) self.shot_layout.setContentsMargins(0,0,0,0) self.shot_step_name_button = QtWidgets.QPushButton() self.shot_step_name_button.setObjectName("title_button") self.shot_step_name_button.setMaximumHeight(25) self.shot_step_name_button.setText(language.word("shot")) self.shot_step_name_button.setIcon(QtGui.QIcon(resource.get("icons","shot.png"))) self.shot_layout.addWidget(self.shot_step_name_button) self.shot_step_checkbox_widget = QtWidgets.QFrame() self.shot_step_checkbox_layout = QtWidgets.QVBoxLayout(self.shot_step_checkbox_widget) self.shot_step_checkbox_layout.setContentsMargins(20,0,0,0) self.shot_layout.addWidget(self.shot_step_checkbox_widget) self.shot_layout.addStretch(True) # # step checkbox widget # self.step_checkbox_widget = QtWidgets.QFrame() # self.step_checkbox_layout = QtWidgets.QVBoxLayout(self.step_checkbox_widget) # self.step_checkbox_layout.setContentsMargins(20,0,0,0) self.step_group = QtWidgets.QButtonGroup(self) # self.step_layout.addWidget(self.step_checkbox_widget) _layout.addStretch(True)
def _base_build(self): self.resize(1200, 600) self.widget = QtWidgets.QFrame() self.widget.setMouseTracking(True) self.widget.installEventFilter(self) self.layout = QtWidgets.QVBoxLayout(self.widget) self.layout.setSpacing(0) self.layout.setContentsMargins(4, 4, 4, 4) self.setCentralWidget(self.widget) # title widget self.title_widget = QtWidgets.QFrame() self.title_widget.setMinimumHeight(50) self.title_widget.setMaximumHeight(50) self.title_layout = QtWidgets.QHBoxLayout(self.title_widget) self.title_layout.setSpacing(0) self.title_layout.setContentsMargins(5, 0, 5, 0) # name frame self.name_widget = QtWidgets.QWidget() self.title_layout.addWidget(self.name_widget) self.name_layout = QtWidgets.QHBoxLayout(self.name_widget) self.name_layout.setContentsMargins(0, 0, 0, 0) self.name_button = QtWidgets.QPushButton() self.name_button.setObjectName("name_button") self.name_button.setFlat(True) self.name_button.setEnabled(False) self.name_button.setIcon( QtGui.QIcon(resource.get("icons", "z_title.png"))) self.name_button.setText("zFused for maya {}".format( zfused_maya.version())) self.name_layout.addWidget(self.name_button) # title label self.title_label = QtWidgets.QPushButton() self.title_label.setFlat(True) self.title_label.setObjectName("title_button") self.title_label.setMaximumHeight(30) self.title_label.setText("Title Name") #self.title_layout.addStretch(True) self.title_layout.addWidget(self.title_label) self.title_layout.addStretch(True) # close frame self.close_widegt = QtWidgets.QWidget() self.title_layout.addWidget(self.close_widegt) self.close_layout = QtWidgets.QHBoxLayout(self.close_widegt) self.close_layout.setContentsMargins(0, 0, 0, 0) # ======================================================================================================= # help button self.help_button = _Button(self.close_widegt, resource.get("icons", "help.png"), resource.get("icons", "help_hover.png"), resource.get("icons", "help_pressed.png")) self.help_button.setFlat(True) self.help_button.setMinimumSize(20, 20) self.help_button.setMaximumSize(20, 20) self.close_layout.addWidget(self.help_button) self.close_button = _Button(self.close_widegt, resource.get("icons", "close.png"), resource.get("icons", "close_hover.png"), resource.get("icons", "close_hover.png")) self.close_button.setObjectName("close_button") self.close_button.setFlat(True) self.close_button.setMinimumSize(20, 20) self.close_button.setMaximumSize(20, 20) # self.close_layout.addWidget(self.min_button) # self.close_layout.addWidget(self.max_button) self.close_layout.addWidget(self.close_button) # central widget self.central_widget = QtWidgets.QFrame() self.central_widget.setObjectName("central_widget") self.central_layout = QtWidgets.QVBoxLayout(self.central_widget) self.central_layout.setSpacing(0) self.central_layout.setContentsMargins(0, 0, 0, 0) # tail widget self.tail_widget = QtWidgets.QFrame() self.tail_widget.setHidden(True) self.tail_widget.setMinimumHeight(40) self.tail_widget.setMaximumHeight(60) self.tail_widget.setObjectName("tail_widget") self.tail_layout = QtWidgets.QHBoxLayout(self.tail_widget) self.tail_layout.setSpacing(0) self.tail_layout.setContentsMargins(0, 0, 0, 0) self.layout.addWidget(self.title_widget) self.layout.addWidget(self.central_widget) self.layout.addWidget(self.tail_widget)
def _base_build(self): self.resize(1200, 600) self.widget = QtWidgets.QFrame() #self.widget.setObjectName("window_frame") self.widget.setMouseTracking(True) self.widget.installEventFilter(self) self.layout = QtWidgets.QVBoxLayout(self.widget) self.layout.setSpacing(0) self.layout.setContentsMargins(0, 0, 0, 0) self.setCentralWidget(self.widget) # title widget self.title_widget = QtWidgets.QFrame() self.title_widget.setObjectName("window_menu_frame") self.title_widget.setMinimumHeight(50) self.title_widget.setMaximumHeight(50) self.title_layout = QtWidgets.QHBoxLayout(self.title_widget) self.title_layout.setSpacing(0) self.title_layout.setContentsMargins(15, 0, 15, 0) # name frame self.name_widget = QtWidgets.QWidget() self.title_layout.addWidget(self.name_widget) self.name_layout = QtWidgets.QHBoxLayout(self.name_widget) self.name_layout.setContentsMargins(0, 0, 0, 0) self.name_button = QtWidgets.QPushButton() self.name_button.setObjectName("window_title_button") self.name_button.setFlat(True) self.name_button.setIcon( QtGui.QIcon(resource.get("icons", "z_title.png"))) self.name_layout.addWidget(self.name_button) # title label self.title_label = QtWidgets.QPushButton() self.title_label.setFlat(True) # self.title_label.setObjectName("title_button") self.title_label.setMaximumHeight(30) self.title_label.setText("Title") self.title_label.setFlat(True) self.title_label.setObjectName("window_title_button") self.title_layout.addWidget(self.title_label) self.title_layout.addStretch(True) # close frame self.close_widegt = QtWidgets.QWidget() self.title_layout.addWidget(self.close_widegt) self.close_layout = QtWidgets.QHBoxLayout(self.close_widegt) self.close_layout.setContentsMargins(0, 0, 0, 0) self.close_layout.setSpacing(18) self.video_button = button.Button() self.video_button.hide() self.video_button.setText(r"视频讲解") self.video_button.setFixedHeight(24) self.video_button.setIcon( QtGui.QIcon(resource.get("icons", "media.png"))) self.video_button.setStyleSheet( "QPushButton{background-color:transparent;}") self.close_layout.addWidget(self.video_button) self.close_button = _Button(self.close_widegt, resource.get("icons", "close.png"), resource.get("icons", "close_hover.png"), resource.get("icons", "close_hover.png")) self.close_button.setFlat(True) self.close_button.setFixedSize(20, 20) self.close_layout.addWidget(self.close_button) # central widget self.central_widget = QtWidgets.QFrame() # self.central_widget.setObjectName("central_widget") self.central_layout = QtWidgets.QVBoxLayout(self.central_widget) self.central_layout.setSpacing(0) self.central_layout.setContentsMargins(0, 0, 0, 0) # tail widget self.tail_widget = QtWidgets.QFrame() self.tail_widget.setHidden(True) self.tail_widget.setMinimumHeight(40) self.tail_widget.setMaximumHeight(60) # self.tail_widget.setObjectName("tail_widget") self.tail_layout = QtWidgets.QHBoxLayout(self.tail_widget) self.tail_layout.setSpacing(0) self.tail_layout.setContentsMargins(0, 0, 0, 0) self.layout.addWidget(self.title_widget) self.layout.addWidget(self.central_widget) self.layout.addWidget(self.tail_widget) #_qss = resource.get("qss", "./window.qss") _qss = "{}/window.qss".format(os.path.dirname(__file__)) with open(_qss) as f: qss = f.read() self.setStyleSheet(qss)
def __build(self): """ build base dialog """ self.resize(400, 600) self.setWindowTitle("zFused Dialog") __layout = QtWidgets.QVBoxLayout(self) __layout.setSpacing(0) __layout.setContentsMargins(1, 1, 1, 1) # head title widget self.__head_widget = QtWidgets.QFrame() __layout.addWidget(self.__head_widget) self.__head_widget.setObjectName("window_menu_frame") self.__head_widget.setMaximumHeight(50) self.__head_layout = QtWidgets.QHBoxLayout(self.__head_widget) # title label self.__title_button = QtWidgets.QPushButton() self.__title_button.setObjectName("window_title_button") # self.setAttribute(QtCore.Qt.WA_TransparentForMouseEvents, True) self.__head_layout.addWidget(self.__title_button) self.__head_layout.addStretch(True) # pin button self.__pin_button = QtWidgets.QPushButton(self) self.__pin_button.setIcon(QtGui.QIcon(resource.get("icons", "pin.png"))) self.__head_layout.addWidget(self.__pin_button) # close button self.__close_button = button.IconButton( self, resource.get("icons", "close.png"), resource.get("icons", "close_hover.png"), resource.get("icons", "close.png")) self.__close_button.setMaximumSize(20, 20) self.__head_layout.addWidget(self.__close_button) # set progress bar self.__progress_bar = QtWidgets.QProgressBar() self.__progress_bar.setMaximumHeight(3) self.__progress_bar.setHidden(True) __layout.addWidget(self.__progress_bar) # content widget # self.__content_widget = QtWidgets.QFrame() __layout.addWidget(self.__content_widget) self.__content_widget.setObjectName("attr_frame") self.__content_layout = QtWidgets.QVBoxLayout(self.__content_widget) self.__content_layout.setSpacing(0) self.__content_layout.setContentsMargins(0, 0, 0, 0) # opeartion widget # self.__opeartion_widget = QtWidgets.QFrame() __layout.addWidget(self.__opeartion_widget) self.__opeartion_widget.setObjectName("operation_frame") self.__opeartion_widget.setMaximumHeight(50) self.__opeartion_layout = QtWidgets.QHBoxLayout( self.__opeartion_widget) self.__opeartion_layout.setSpacing(4) self.__opeartion_layout.setContentsMargins(2, 4, 2, 4) # add tips label # tips label self.__tip_label = QtWidgets.QLabel() self.__tip_label.setObjectName("tip_label") self.__opeartion_layout.addWidget(self.__tip_label) self.__opeartion_layout.addStretch(True) # cancel button self.__cancel_button = QtWidgets.QPushButton() self.__cancel_button.setObjectName("cancel_button") self.__cancel_button.setText(language.word("cancel")) self.__cancel_button.setMinimumSize(100, 36) self.__opeartion_layout.addWidget(self.__cancel_button) # create button self.__create_button = QtWidgets.QPushButton() self.__create_button.setObjectName("create_button") self.__create_button.setText(language.word("confirm")) self.__create_button.setMinimumSize(100, 36) self.__opeartion_layout.addWidget(self.__create_button) # top left edge frame self.top_left_edge_frame = edge_frame(self, "top_left") # top rght edge frame self.top_right_edge_frame = edge_frame(self, "top_right") # top edge frame self.top_edge_frame = edge_frame(self, "top") # left edge frame self.left_edge_frame = edge_frame(self, "left") # right edge frame self.right_edge_frame = edge_frame(self, "right") # bottom edge frame self.bottom_edge_frame = edge_frame(self, "bottom") # bottom left edge frame self.bottom_left_edge_frame = edge_frame(self, "bottom_left") # bottom right edge frame self.bottom_right_edge_frame = edge_frame(self, "bottom_right") _edges = [ self.top_left_edge_frame, self.top_right_edge_frame, self.top_edge_frame, self.left_edge_frame, self.right_edge_frame, self.bottom_edge_frame, self.bottom_left_edge_frame, self.bottom_right_edge_frame ] for _edge in _edges: _edge.setStyleSheet("QFrame{background-color: transparent}")
def _build(self): self.resize(800,600) self.set_title_name(u"着色引擎颜色(shading engine color)") #_layout = QtWidgets.QVBoxLayout(self) self.splitter = QtWidgets.QSplitter() self.list_widget = QtWidgets.QFrame(self.splitter) self.list_layout = QtWidgets.QVBoxLayout(self.list_widget) # head widget self.head_widget = QtWidgets.QFrame() self.head_layout = QtWidgets.QHBoxLayout(self.head_widget) self.head_layout.setSpacing(4) self.head_layout.setContentsMargins(0,0,0,0) self.head_name_button = QtWidgets.QPushButton() self.head_name_button.setText(u"着色引擎列表") self.head_name_button.setIcon(QtGui.QIcon(resource.get("icons", "list.png"))) self.refresh_button = QtWidgets.QPushButton() self.refresh_button.setMaximumWidth(100) self.refresh_button.setText(u"刷新") self.refresh_button.setIcon(QtGui.QIcon(resource.get("icons", "refresh.png"))) self.head_layout.addWidget(self.head_name_button) self.head_layout.addWidget(self.refresh_button) # content widget self.engine_list_widget = QtWidgets.QFrame() self.engine_list_layout = QtWidgets.QHBoxLayout(self.engine_list_widget) self.engine_list_layout.setSpacing(0) self.engine_list_layout.setContentsMargins(0,0,0,0) # engine listwidget self.engine_listwidget = QtWidgets.QListWidget() self.engine_listwidget.setMouseTracking(True) self.engine_list_layout.addWidget(self.engine_listwidget) self.engine_listwidget.setSpacing(2) self.engine_listwidget.setItemDelegate(engineitemdelegate.EngineItemDelegate(self.engine_listwidget)) self.engine_listwidget.setResizeMode(QtWidgets.QListView.Adjust) self.engine_listwidget.setSelectionMode(QtWidgets.QListWidget.ExtendedSelection) self.engine_listwidget.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) self.engine_listwidget.setFrameShape(QtWidgets.QFrame.NoFrame) self.list_layout.addWidget(self.head_widget) self.list_layout.addWidget(self.engine_list_widget) # content widget self.content_widget = QtWidgets.QFrame(self.splitter) self.content_layout = QtWidgets.QVBoxLayout(self.content_widget) # name widget self.content_name_widget = QtWidgets.QFrame() self.content_name_layout = QtWidgets.QHBoxLayout(self.content_name_widget) self.content_name_layout.setSpacing(4) self.content_name_layout.setContentsMargins(0,0,0,0) self.content_name_button = QtWidgets.QPushButton() self.color_button = QtWidgets.QPushButton() self.color_button.setText(u"提取颜色") self.color_button.setMaximumWidth(100) self.content_name_layout.addWidget(self.content_name_button) self.content_name_layout.addWidget(self.color_button) # color palette widget self.content_color_widget = QtWidgets.QFrame() self.content_color_widget.setMinimumHeight(40) self.content_color_layout = QtWidgets.QHBoxLayout(self.content_color_widget) self.content_color_layout.setSpacing(0) self.content_color_layout.setContentsMargins(0,0,0,0) self.color_label = QtWidgets.QLabel() self.color_label.setStyleSheet("QLabel{background-color:#9D9D9D}") self.content_color_layout.addWidget(self.color_label) # material object self.object_listwidget = QtWidgets.QListWidget() self.object_listwidget.setSelectionMode(QtWidgets.QListWidget.ExtendedSelection) self.object_listwidget.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) self.object_listwidget.setFrameShape(QtWidgets.QFrame.NoFrame) self.content_layout.addWidget(self.content_color_widget) self.content_layout.addWidget(self.content_name_widget) self.content_layout.addWidget(self.object_listwidget) # switch engine self.switch_engine_widget = QtWidgets.QWidget() self.switch_engine_layout = QtWidgets.QHBoxLayout(self.switch_engine_widget) self.switch_engine_layout.setSpacing(4) self.switch_engine_layout.setContentsMargins(4,0,4,0) # orignail engine self.orignail_engine_button = QtWidgets.QPushButton() self.orignail_engine_button.setFixedSize(100, 30) self.orignail_engine_button.setText(u"还原自身材质球") # color engine self.color_engine_button = QtWidgets.QPushButton() self.color_engine_button.setFixedSize(100, 30) self.color_engine_button.setText(u"显示纯色材质球") self.switch_engine_layout.addStretch(True) self.switch_engine_layout.addWidget(self.orignail_engine_button) self.switch_engine_layout.addWidget(self.color_engine_button) self.set_central_widget(self.splitter) self.set_tail_widget(self.switch_engine_widget)
def paint(self, painter, option, index): _engine_name = index.data() painter.save() painter.setRenderHint(QtGui.QPainter.Antialiasing, True) _rect = option.rect _pen = QtGui.QPen(QtGui.QColor("#FFFFFF"), 0.1) painter.setPen(_pen) painter.setBrush(QtGui.QColor("#444444")) painter.drawRoundedRect(option.rect, 0, 0) #fm = QtGui.QFontMetrics(painter.font()) # 获取引擎颜色值 _color = shadingcolorproc.get_node_shading_color(_engine_name) _icon = resource.get("icons","okay.png") if not _color: # 判断color值或图片 """ _color = shadingcolorproc.get_connect_color(_engine_name) if _color: shadingcolorproc.set_node_shading_color(_engine_name, _color) else: """ _color = "#444444" _icon = resource.get("icons","waring.png") # 绘制是否存在 _icon_rect = QtCore.QRect(_rect.x(), _rect.y(), _rect.height(), _rect.height()) painter.drawPixmap(_icon_rect.x(), _icon_rect.y(), QtGui.QPixmap(_icon).scaled(24, 24)) # 绘制引擎颜色图标 _color_rect = QtCore.QRect(_icon_rect.x() + _icon_rect.width() + self._spacing, _icon_rect.y() + self._spacing/2.0, _rect.height() - self._spacing, _rect.height() - self._spacing) painter.setBrush(QtGui.QBrush(QtGui.QColor(_color))) painter.drawEllipse(_color_rect) # 绘制着色引擎名称 _name_rect = QtCore.QRect(_color_rect.x() + _rect.height() + self._spacing, _rect.y(), _rect.width() - _color_rect.width(), _rect.height()) painter.drawText(_name_rect, QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter, _engine_name) # 绘制是否存在颜色 if option.state & QtWidgets.QStyle.State_Selected: bgBrush = QtGui.QBrush(QtGui.QColor(149, 194, 197, 150)) bgPen = QtGui.QPen(QtGui.QColor(160, 60, 60, 0), 0) painter.setPen(bgPen) painter.setBrush(bgBrush) painter.drawRect(option.rect) elif option.state & QtWidgets.QStyle.State_MouseOver: bgBrush = QtGui.QBrush(QtGui.QColor(200, 200, 200, 20)) bgPen = QtGui.QPen(QtGui.QColor(60, 60, 60, 0), 0) painter.setPen(bgPen) painter.setBrush(bgBrush) painter.drawRect(option.rect) else: bgBrush = QtGui.QBrush(QtGui.QColor(200, 200, 200, 0)) bgPen = QtGui.QPen(QtGui.QColor(160, 60, 60, 0), 0) painter.setPen(bgPen) painter.setBrush(bgBrush) painter.drawRect(option.rect) painter.restore()
class SearchLineEdit(QtWidgets.QLineEdit): search_clicked = QtCore.Signal(str) close_pixmap = QtGui.QPixmap(resource.get("icons", "search.png")).scaled(20, 20, QtCore.Qt.IgnoreAspectRatio, QtCore.Qt.SmoothTransformation) close_pixmap_hover = QtGui.QPixmap(resource.get("icons", "search_hover.png")).scaled(20, 20, QtCore.Qt.IgnoreAspectRatio, QtCore.Qt.SmoothTransformation) close_pixmap_pressed = QtGui.QPixmap(resource.get("icons", "search_pressed.png")).scaled(20, 20, QtCore.Qt.IgnoreAspectRatio, QtCore.Qt.SmoothTransformation) def __init__(self, parent = None): super(SearchLineEdit, self).__init__(parent) # self.setStyleSheet("QLineEdit{font-family:Microsoft YaHei UI;font: bold 12px;color:#3A3A3A;background-color:#D1D1D7}" # "QLineEdit{border:0px dotted; border-color:#343D46;padding-left: 20px}") self.setStyleSheet("QLineEdit{font-family:Microsoft YaHei UI;font: bold 12px;color:#DFDFDF;background-color:#5D5D5D}" "QLineEdit{border:0px dotted; border-color:#343D46;padding-left: 20px}") self._tip = u"关键字搜索,摁enter搜索" self._is_inputmethod = False self._is_close = False self._is_search = False self.installEventFilter(self) self.setMouseTracking(True) def eventFilter(self, obj, event): if QtCore.QEvent.KeyPress == event.type(): self._is_inputmethod = False elif QtCore.QEvent.InputMethod == event.type(): self._is_inputmethod = True return super(SearchLineEdit, self).eventFilter(obj, event) def tip(self): return self._tip() def set_tip(self, tip): self._tip = tip def leaveEvent(self, event): self._is_search = False self.update() def mouseMoveEvent(self, event): _pos = event.pos() _rect = self.rect() _search_rect = QtCore.QRectF( _rect.x(), _rect.y(), 20, _rect.height() ) if _search_rect.contains(_pos): self.setCursor(QtCore.Qt.PointingHandCursor) self._is_search = True else: self.setCursor(QtCore.Qt.IBeamCursor) self._is_search = False if self.text(): _close_rect = QtCore.QRectF( _rect.x() + _rect.width() - 25, _rect.y(), 25, _rect.height()) if _close_rect.contains(_pos): self.setCursor(QtCore.Qt.PointingHandCursor) self._is_close = True else: self.setCursor(QtCore.Qt.IBeamCursor) self._is_close = False else: self.setCursor(QtCore.Qt.IBeamCursor) self._is_close = False self.update() super(SearchLineEdit, self).mouseMoveEvent(event) def keyPressEvent(self, event): """ 回车键和确认键 """ if event.key() == QtCore.Qt.Key_Return or event.key() == QtCore.Qt.Key_Enter : self.search_clicked.emit(self.text()) super(SearchLineEdit, self).keyPressEvent(event) def mouseReleaseEvent(self, event): """ """ if self._is_close: self.clear() self.setCursor(QtCore.Qt.IBeamCursor) self._is_inputmethod = False self.search_clicked.emit(self.text()) if self._is_search: self.search_clicked.emit(self.text()) # self.update() def paintEvent(self, event): super(SearchLineEdit, self).paintEvent(event) _rect = self.rect() _painter = QtGui.QPainter(self) _painter.save() _painter.setRenderHint(QtGui.QPainter.Antialiasing, True) _painter.setPen(QtGui.QColor("#A5A5A5")) if self._is_search: _painter.drawPixmap(_rect.x() , _rect.y() + (_rect.height() - 20)/2, self.close_pixmap_hover ) else: _painter.drawPixmap(_rect.x() , _rect.y() + (_rect.height() - 20)/2, self.close_pixmap ) if not self.text() and not self._is_inputmethod: _painter.drawText(QtCore.QRectF(_rect.x() + 20, _rect.y(), _rect.width() - 5, _rect.height()), QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter, self._tip) else: if self.text(): if self._is_close: _painter.setPen("#FF0000") else: _painter.setPen("#343D46") _painter.drawText(QtCore.QRectF(_rect.x() + 5, _rect.y(), _rect.width() - 5, _rect.height()), QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter, " X ") _painter.restore()
import logging import threading from Qt import QtWidgets, QtGui, QtCore import zfused_api from zcore import cache, color, resource from . import constants __all__ = ["ItemDelegate"] logger = logging.getLogger(__name__) _star_bright_pixmap = QtGui.QPixmap(resource.get("icons", "star.png")) class ItemDelegate(QtWidgets.QStyledItemDelegate): def __init__(self, parent=None): super(ItemDelegate, self).__init__(parent) self._spacing = 4 self._file_pixmap = QtGui.QPixmap( resource.get("icons", "file_hover.png")) self._file_pixmap = self._file_pixmap.scaled( 20, 20, QtCore.Qt.KeepAspectRatio, QtCore.Qt.SmoothTransformation) def _update(self, index): self.parent().update(index) def paint(self, painter, option, index):
def _build(self): self.resize(160, 200) #self.setMaximumWidth(300) _layout = QtWidgets.QVBoxLayout(self) _layout.setSpacing(2) _layout.setContentsMargins(0, 0, 0, 0) # project step widget self.step_widget = QtWidgets.QFrame() self.step_widget.setMinimumHeight(25) self.step_layout = QtWidgets.QVBoxLayout(self.step_widget) self.step_layout.setSpacing(0) self.step_layout.setContentsMargins(0, 0, 0, 0) # name button self.step_button = QtWidgets.QPushButton() self.step_button.setText(u"项目步骤") self.step_button.setIcon(QtGui.QIcon(resource.get("icons", "step.png"))) self.step_button.setObjectName("title_button") self.step_layout.addWidget(self.step_button) # version widget self.version_widget = QtWidgets.QFrame() self.version_widget.setMinimumHeight(25) self.version_layout = QtWidgets.QHBoxLayout(self.version_widget) self.version_layout.setSpacing(20) self.version_layout.setContentsMargins(20, 0, 20, 0) # version name button self.version_name_button = QtWidgets.QPushButton() self.version_name_button.setText(u"版本") # version combobox self.version_combobox = QtWidgets.QComboBox() self.version_layout.addWidget(self.version_combobox) self.version_layout.addStretch(True) # listwidget self.version_listwidget = versionlistwidget.listwidget.ListWidget() # description widget self.description_textedit = QtWidgets.QTextEdit() self.description_textedit.setFrameShape(QtWidgets.QFrame.NoFrame) self.description_textedit.setEnabled(False) self.description_textedit.setMaximumHeight(40) self.description_textedit.setPlaceholderText("version description") # operation widget # self.operation_widget = QtWidgets.QFrame() self.operation_widget.setObjectName("operation_widget") self.operation_widget.setMinimumHeight(30) self.operation_layout = QtWidgets.QHBoxLayout(self.operation_widget) self.operation_layout.setContentsMargins(0, 0, 0, 0) # file name self.file_name_label = QtWidgets.QLabel() self.operation_layout.addWidget(self.file_name_label) self.operation_layout.addStretch(True) # reference file self.reference_button = QtWidgets.QPushButton() self.reference_button.setObjectName("reference_button") self.reference_button.setFixedSize(100, 30) self.reference_button.setText(u"参考文件") self.operation_layout.addWidget(self.reference_button) # import gpu # _layout.addWidget(self.thumbnail_widget) _layout.addWidget(self.step_widget) # _layout.addWidget(self.version_widget) # _layout.addStretch(True) _layout.addWidget(self.version_listwidget) _layout.addWidget(self.description_textedit) _layout.addWidget(self.operation_widget)