def __init__(self, Orientation=QtCore.Qt.Horizontal, parent=None): super(MSplitter, self).__init__(Orientation, parent=parent) self.setHandleWidth(10) self.setProperty("animatable", True) self.setProperty("default_size", 100) self.setProperty("anim_move_duration", 300) dayu_theme.apply(self)
def addDrawer(self, type, name, path): if (self.userName == None): self.slot_show_message(MMessage.warning, u"请先登录账号") return self.parmerPanel = Parmers.ParmerPanel(self.userName) self.parmerPanel.setParam(type, name, path) self.parmerPanel.send_message_signal.connect(self.setMessageBox) self.custom_widget = QWidget() custom_lay = QFormLayout() self.custom_widget.setLayout(custom_lay) custom_lay.setContentsMargins(0, 0, 0, 0) custom_lay.addWidget(self.parmerPanel) self.drawer = MDrawer(u'参数面板', parent=self.view.centerWindow) self.drawer.layout().setContentsMargins(0, 0, 0, 0) self.drawer.setFixedWidth(Data.getWindowWidth() / 3) self.drawer.set_widget(self.custom_widget) # self.drawer.layout().addWidget(self.custom_widget) dayu_theme.apply(self.drawer) self.drawer.show() # self.parmerPanel.model_widget.setMinimumSize(Data.getWindowHeight()/3,Data.getWindowHeight()/3) # self.view.centerWindow.layout().addWidget(self.parmerPanel.model_widget) self.parmerPanel.model_widget.embed() self.parmerPanel.setModelWidget(path) #设置3d视图
def alert(msg=u"msg", title=u"警告", icon=QtWidgets.QMessageBox.Warning, button_text=u"确定"): # NOTE 生成 Qt 警告窗口 msg_box = QtWidgets.QMessageBox() msg_box.setIcon(icon) msg_box.setWindowTitle(title) msg_box.setText(msg) msg_box.addButton(button_text, QtWidgets.QMessageBox.AcceptRole) unreal.parent_external_window_to_slate(msg_box.winId()) dayu_theme.apply(msg_box) msg_box.exec_()
def __init__(self, username): super(ParmerPanel, self).__init__() self.username = username self.id = None self.setObjectName("parmPanel") self.setupUI() dayu_theme.apply(self)
def _init_ui(self): self.setWindowModality(Qt.ApplicationModal) meta_card_lay = QHBoxLayout() meta_card_lay.setSpacing(20) for setting in [ { 'title': u'ZEUS', 'cover': MPixmap( r'C:\Users\huangPeiXin\Documents\houdini17.5\python2.7libs\Zeus_Lin\res\ZeusDesign\zeus.png' ) }, { 'title': u'IDO', 'cover': MPixmap( r'C:\Users\huangPeiXin\Documents\houdini17.5\python2.7libs\Zeus_Lin\res\ZeusDesign\ido.png' ) }, ]: meta_card = MMeta() meta_card.setup_data(setting) meta_card_lay.addWidget(meta_card) left_lay = QVBoxLayout() left_lay.addWidget(MDivider('About Zeus')) left_lay.addLayout(meta_card_lay) left_lay.addWidget(MDivider('')) left_lay.setSpacing(20) label_1 = MLabel(u"Zues是由一灯工作室开发的一个软件") label_1.setAlignment(Qt.AlignHCenter) label_2 = MLabel(u"用于管理CG开发的相关资源") label_2.setAlignment(Qt.AlignHCenter) left_lay.addWidget(label_1) left_lay.addWidget(label_2) btn = MPushButton(u"确定") btn.clicked.connect(self.close) left_lay.addWidget(btn) left_lay.addStretch() self.setLayout(left_lay) dayu_theme.background_color = "#262626" dayu_theme.apply(self)
def wrapper(self, single=True, *args, **kwargs): if single: # TODO crash for win in QtWidgets.QApplication.allWidgets(): if win is self: continue elif self.__class__.__name__ in str(type(win)): win.deleteLater() win.close() res = func(self, *args, **kwargs) # NOTE https://forums.unrealengine.com/unreal-engine/unreal-studio/1526501-how-to-get-the-main-window-of-the-editor-to-parent-qt-or-pyside-application-to-it unreal.parent_external_window_to_slate(self.winId()) dayu_theme.apply(self) return res
def setupUI(self): self.setMinimumSize(Data.getWindowWidth() / 4.7, Data.getWindowHeight() / 2) self.setMaximumSize(Data.getWindowWidth() / 4.7, Data.getWindowHeight() / 2) self.setWindowModality(Qt.ApplicationModal) Data.setWindowCenter(self) self.setLayout(QVBoxLayout()) btn = MPushButton("SIGNAL IN") btn.setIcon(QIcon(file_path + r"\res\ZeusDesign\a.png")) self.layout().addWidget(btn) self.layout().addWidget(MDivider()) self.line_edit_name = MLineEdit() self.line_edit_name.setPlaceholderText('username') self.line_edit_name.set_prefix_widget( MToolButton().svg('user_line.svg').icon_only()) self.line_edit_password = MLineEdit() self.line_edit_password.setPlaceholderText('password') self.line_edit_password.setEchoMode(QLineEdit.Password) self.line_edit_password.set_prefix_widget( MToolButton().svg('confirm_line.svg').icon_only()) self.layout().addWidget(self.line_edit_name) self.layout().addWidget(self.line_edit_password) self.layout().addWidget(MDivider()) self.btn_sign_in = MPushButton(u'登录').large().primary() self.layout().addWidget(self.btn_sign_in) self.btn_sign_up = MPushButton(u'注册').large().primary() self.layout().addWidget(self.btn_sign_up) dayu_theme.background_color = "#262626" dayu_theme.apply(self) self.layout().setContentsMargins(20, 40, 20, 40) self.btn_sign_up.clicked.connect(self.on_sigin_up_click) self.btn_sign_in.clicked.connect(self.on_sigin_in_click) self.setWindowTitle(u"登录界面")
def wrapper(self, single=True, *args, **kwargs): # NOTE 只保留一个当前类窗口 if single: for win in QtWidgets.QApplication.topLevelWidgets(): if win is self: continue elif self.__class__.__name__ in str(type(win)): win.deleteLater() # win.setParent(None) win.close() # NOTE https://forums.unrealengine.com/unreal-engine/unreal-studio/1526501-how-to-get-the-main-window-of-the-editor-to-parent-qt-or-pyside-application-to-it # NOTE 让窗口嵌入到 unreal 内部 unreal.parent_external_window_to_slate(self.winId()) res = func(self, *args, **kwargs) # NOTE 添加 dayu_widget 的样式 dayu_theme.apply(self) return res
def __init__(self, parent=None): super(MCompleter, self).__init__(parent) self.setProperty("animatable", True) popup = self.popup() dayu_theme.apply(popup) self._opacity_anim = QtCore.QPropertyAnimation(popup, b"windowOpacity") self.setProperty("anim_opacity_duration", 300) self.setProperty("anim_opacity_curve", "OutCubic") self.setProperty("anim_opacity_start", 0) self.setProperty("anim_opacity_end", 1) self._size_anim = QtCore.QPropertyAnimation(popup, b"size") self.setProperty("anim_size_duration", 300) self.setProperty("anim_size_curve", "OutCubic") popup.installEventFilter(self)
def __init__(self, parent=None): super(MComboBox, self).__init__(parent) self._root_menu = None self._display_formatter = utils.display_formatter self.setEditable(True) line_edit = self.lineEdit() line_edit.setReadOnly(True) line_edit.setTextMargins(4, 0, 4, 0) line_edit.setStyleSheet("background-color:transparent") line_edit.setCursor(QtCore.Qt.PointingHandCursor) line_edit.installEventFilter(self) self._has_custom_view = False self.set_value("") self.set_placeholder(self.tr("Please Select")) self.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self._dayu_size = dayu_theme.default_size dayu_theme.apply(self)
def __init__(self): super(CenterWindow,self).__init__() self.setObjectName("CenterWindow") self.fileList = [] # 保存当前选择标签下的文件列表 self.tag = "" # 保存当前标签 self.tableWidget_show = True # tableWidget窗口是否显示 self.row = 0 # 定位添加标签 self.column = 0 self.setupUI() # 设置tablewidget self.tableWidget = self.ui.findChild(QTableWidget, "tableWidget") self.tableWidget.setMaximumHeight(Data.getWindowHeight()/5) self.setTableWidget() self.tableWidget.setStyleSheet(Data.getQSS()) self.tableWidget.setStyleSheet("background-color: #323232") self.searchWidget = self.ui.findChild(QWidget, "widget_2") self.search_engine_line_edit = MLineEdit().search_engine().large() dayu_theme.apply(self.search_engine_line_edit) self.searchWidget.setLayout(QHBoxLayout()) self.searchWidget.layout().addWidget(self.search_engine_line_edit) self.slider = MSlider(Qt.Horizontal) self.slider.setMaximumWidth(Data.getWindowWidth()/4) self.slider.setValue(50) self.slider.setRange(1, 100) dayu_theme.apply(self.slider) self.searchWidget.layout().addWidget(self.slider) self.button_tag = MToolButton().svg('detail_line.svg').icon_only() self.button_tag.setEnabled(True) self.button_del = MToolButton().svg('trash_line.svg').icon_only() self.button_del.setCheckable(True) dayu_theme.apply(self.button_del) dayu_theme.apply(self.button_tag) self.searchWidget.layout().addWidget(self.button_tag) self.searchWidget.layout().addWidget(self.button_del) self.slider.valueChanged.connect(self.changeBtnSize) self.button_tag.clicked.connect(self.showTableWidget) self.button_del.clicked.connect(self.deleteTag) self.search_engine_line_edit.returnPressed.connect(self.on_searchBtn_click) self.setThread()
def setupUI(self): self.setStyleSheet("color: #b1b1b1;background-color: #323232;") self.ui = loadUi(file_path + "\\res\\UI\\MainWindow.ui") self.ui.setParent(self) self.menubar = MenuBar.MenuTabWidgetExample() dayu_theme.apply(self.menubar) #设置窗口名称 self.setWindowTitle(u"资源浏览器") #设置布局 self.setLayout(QVBoxLayout()) self.layout().setSpacing(0) self.layout().setContentsMargins(0, 0, 0, 0) self.layout().addWidget(self.menubar) self.layout().addWidget(self.ui) self.addWindow() dayu_theme.apply(self) # 最小化************气泡** ************ self.exitOnClose = False aMinimum = QtWidgets.QAction(QtGui.QIcon(), u"最小化到托盘", self) #aMinimum.triggered.connect(self.menubar) #self.menu_window.addAction(aMinimum) self.trayIcon = QtWidgets.QSystemTrayIcon(QtGui.QIcon(ICONPATH), self) #self.trayIcon.setContextMenu(self.menubar) self.trayIcon.activated.connect(self.trayIconActivated) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(ICONPATH), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.setWindowIcon(icon) # self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint) self.trayIcon.show()
if p < 60: return dayu_theme.warning_color if p < 100: return dayu_theme.primary_color return dayu_theme.success_color def get_format(self): p = self.field('percent') if p < 30: return u'>_<' if p < 60: return u'0_0' if p < 100: return u'^_^' return u'^o^' def slot_change_percent(self, value): self.set_field('percent', max(0, min(self.field('percent') + value, 100))) if __name__ == '__main__': import sys from dayu_widgets.qt import QApplication app = QApplication(sys.argv) test = ProgressCircleExample() dayu_theme.apply(test) test.show() sys.exit(app.exec_())
def onclick(self): self.login = Login() self.login.show() dayu_theme.apply(self.login)
def __init__(self, imgPath): super(headProfieWindow, self).__init__() # 加载ui,并设置ui界面 #self.ui = loadUi(file_path + r"\res\UI\HeadProfileWindow.ui") self.setWindowModality(Qt.ApplicationModal) self.setWindowTitle(u"头像编辑器") # self.ui = loadUi(file_path + r"\res\UI\HeadProfileWindow.ui") # self.ui.setParent(self) self.imgPath = imgPath self.setLayout(QVBoxLayout()) self.label_view = MLabel() self.label_view.setAlignment(Qt.AlignCenter) self.layout().addWidget(self.label_view) self.layout().addWidget(MDivider(u'缩放')) self.hSlider_scale = MSlider(Qt.Horizontal) self.layout().addWidget(self.hSlider_scale) self.layout().addWidget(MDivider(u'垂直位移')) self.hSlider_moveH = MSlider(Qt.Horizontal) self.layout().addWidget(self.hSlider_moveH) self.layout().addWidget(MDivider(u'水平位移')) self.hSlider_moveV = MSlider(Qt.Horizontal) self.layout().addWidget(self.hSlider_moveV) self.layout().addStretch() self.btn_save_image = MPushButton(u'保存图片').large().primary() self.layout().addWidget(self.btn_save_image) dayu_theme.apply(self) self.setMinimumSize(Data.getWindowWidth() / 4.5, Data.getWindowHeight() / 1.7) self.setMaximumSize(Data.getWindowWidth() / 4.5, Data.getWindowHeight() / 1.7) self.layout().setContentsMargins(20, 40, 20, 40) Data.setWindowCenter(self) self.hSlider_scale.setRange(0, 100) self.hSlider_moveH.setRange(0, 100) self.hSlider_moveV.setRange(0, 100) self.hSlider_scale.setValue(0) #初始值 self.hSlider_moveH.setValue(50) self.hSlider_moveV.setValue(50) #原图大小 img = cv2.imread(self.imgPath) self.oiX = img.shape[0] self.oiY = img.shape[1] #获取初始值 self.scale = self.hSlider_scale.value() self.mh = self.hSlider_moveH.value() self.mv = self.hSlider_moveV.value() #设置初始头像 self.editPicture(self.scale, self.mh, self.mv) self.setPicteruView() # #链接信号与槽 self.hSlider_scale.valueChanged.connect(lambda: self.scaleEdit()) self.hSlider_moveH.valueChanged.connect(lambda: self.moveHEdit()) self.hSlider_moveV.valueChanged.connect(lambda: self.moveVEdit()) self.btn_save_image.clicked.connect(lambda: self.ok())
def __init__(self, username): super(editUserWinodw, self).__init__() self.setWindowModality(Qt.ApplicationModal) self.setMinimumSize(Data.getWindowHeight() / 1.5, Data.getWindowHeight() / 3) # self.setMinimumSize(Data.getWindowWidth() / 3, Data.getWindowHeight() / 3) # self.setMaximumSize(Data.getWindowWidth() / 3, Data.getWindowHeight() / 3) self.username = username self.key = None self.wchp = False self.wcun = False self.wcpw = False self.wcid = False # 设置窗口名称 self.setWindowTitle(u"用户窗口") self.tab = MLineTabWidget() widget = QWidget() widget_child = QWidget() widget_child_2 = QWidget() widget.setLayout(QHBoxLayout()) widget_child.setLayout(QVBoxLayout()) widget_child_2.setLayout(QVBoxLayout()) self.label_headProfile = MLabel() self.label_headProfile.setAlignment(Qt.AlignHCenter) self.btn_changeHead = MPushButton(u'选择新头像') widget_child.layout().addWidget(self.label_headProfile) widget_child.layout().addWidget(self.btn_changeHead) # widget_child.layout().addStretch() self.let_username = MLineEdit(text='username') tool_button = MLabel(text=u'用户名').mark().secondary() tool_button.setAlignment(Qt.AlignCenter) tool_button.setFixedWidth(80) self.let_username.set_prefix_widget(tool_button) widget_child_2.layout().addWidget(self.let_username) self.let_ID = MLineEdit(text='identity') self.btn_changeID = MPushButton(text=u'修改身份').primary() self.btn_changeID.setFixedWidth(80) self.let_ID.set_suffix_widget(self.btn_changeID) widget_child_2.layout().addWidget(self.let_ID) self.let_key = MLineEdit(text='') tool_button = MLabel(text=u'密钥').mark().secondary() tool_button.setAlignment(Qt.AlignCenter) tool_button.setFixedWidth(80) self.let_key.set_prefix_widget(tool_button) widget_child_2.layout().addWidget(self.let_key) self.let_password = MLineEdit(text='***********') self.btn_changePassword = MPushButton(text=u'修改密码').primary() self.btn_changePassword.setFixedWidth(80) self.let_password.set_suffix_widget(self.btn_changePassword) widget_child_2.layout().addWidget(self.let_password) self.btn_ok = MPushButton(u'确定').large().primary() self.btn_cancel = MPushButton(u'取消').large().primary() layout = QHBoxLayout() layout.addWidget(self.btn_ok) layout.addWidget(self.btn_cancel) widget_child_2.layout().addLayout(layout) widget.layout().addWidget(widget_child) widget.layout().addWidget(widget_child_2) self.tab.add_tab(widget, u'用户信息') widget2 = QWidget() self.ui = loadUi(file_path + r"\res\UI\EditUserWindow.ui") self.ui.setParent(widget2) widget2.setLayout(QVBoxLayout()) widget2.layout().addWidget(self.ui) self.tableWidget_operationNode = self.ui.findChild( QTableWidget, "tableWidget_operationNode") self.tableWidget_operationNode.setStyleSheet(Data.getQSS()) setSectionResizeMode(self.tableWidget_operationNode.horizontalHeader(), QHeaderView.Stretch) # 自适应 # widget2.layout().addSpacing(100) self.tab.add_tab(widget2, u'操作记录') btn_layout = QHBoxLayout() main_lay = QVBoxLayout() main_lay.addSpacing(20) main_lay.addWidget(self.tab) main_lay.addWidget(MDivider(u'')) main_lay.addLayout(btn_layout) main_lay.addSpacing(20) self.setLayout(main_lay) dayu_theme.background_color = "#262626" dayu_theme.apply(self) # 设置默认值 self.tableWidget_operationNode.setHorizontalHeaderLabels( [u'操作', u'文件名', u'时间']) # 设置资产操作记录表: colUser = userdb[self.username] userlist = colUser.find({}, {"FileName": 1, "Operation": 1, "Time": 1}) i = 0 for xdir in userlist: if "Operation" in xdir: str1 = xdir["Operation"] newItem1 = QTableWidgetItem(str1) self.tableWidget_operationNode.setItem(i, 0, newItem1) if "FileName" in xdir: str2 = xdir["FileName"] newItem2 = QTableWidgetItem(str2) self.tableWidget_operationNode.setItem(i, 1, newItem2) if "Time" in xdir: str3 = xdir["Time"] newItem3 = QTableWidgetItem(str3) self.tableWidget_operationNode.setItem(i, 2, newItem3) i += 1 #设置默认值 pixmap = QtGui.QPixmap(hpPath + "\\" + self.username + ".jpg") self.label_headProfile.setPixmap(pixmap) self.let_username.setText(self.username) self.let_username.setReadOnly(True) #只读 self.let_ID.setReadOnly(True) # 只读 self.let_password.setReadOnly(True) # 只读 self.let_password.setEchoMode(QLineEdit.Password) #输入密码形式 # 从数据库提取ID for x in colUser.find({"_id": "UserID"}, {"UserID": 1}): ID = x["UserID"] self.let_ID.setText(ID) # 显示身份 self.let_password.setText("**********") #链接信号与槽 self.btn_changeHead.clicked.connect(lambda: self.editHeadProfile()) self.btn_ok.clicked.connect(lambda: self.ok()) self.btn_cancel.clicked.connect(lambda: self.cancel()) self.btn_changePassword.clicked.connect(lambda: self.changePassword()) self.btn_changeID.clicked.connect(lambda: self.setID())
def _init_ui(self): self.setWindowModality(Qt.ApplicationModal) self.setMinimumSize(Data.getWindowWidth() / 4.5, Data.getWindowHeight() / 1.6) self.setMaximumSize(Data.getWindowWidth() / 4.5, Data.getWindowHeight() / 1.6) browser_4 = MClickBrowserFolderToolButton().huge() self.lineEdit = MLineEdit(text='filepath') self.lineEdit.setReadOnly(True) browser_4.sig_folder_changed.connect(self.lineEdit.setText) lay_1 = QHBoxLayout() lay_1.addWidget(self.lineEdit) lay_1.addWidget(browser_4) self.tab = MLineTabWidget() widget = QWidget() widget.setLayout(QVBoxLayout()) self.lineEdit_width = MLineEdit() tool_button = MLabel(text=u'宽度').mark().secondary() tool_button.setAlignment(Qt.AlignCenter) tool_button.setFixedWidth(80) self.lineEdit_width.set_prefix_widget(tool_button) self.lineEdit_width.setText("1080") self.lineEdit_width.setValidator(QIntValidator()) self.lineEdit_height = MLineEdit() tool_button = MLabel(text=u'高度').mark().secondary() tool_button.setAlignment(Qt.AlignCenter) tool_button.setFixedWidth(80) self.lineEdit_height.set_prefix_widget(tool_button) self.lineEdit_height.setText("720") self.lineEdit_height.setValidator(QIntValidator()) self.lineEdit_level = MLineEdit() tool_button = MLabel(text=u'精度').mark().secondary() tool_button.setAlignment(Qt.AlignCenter) tool_button.setFixedWidth(80) self.lineEdit_level.set_prefix_widget(tool_button) self.lineEdit_level.setText("50") self.lineEdit_level.setValidator(QIntValidator()) widget.layout().addWidget(MLabel(u'贴图大小')) widget.layout().addWidget(self.lineEdit_width) widget.layout().addWidget(self.lineEdit_height) widget.layout().addSpacing(10) widget.layout().addWidget(MLabel(u'贴图精度')) widget.layout().addWidget(self.lineEdit_level) self.tab.add_tab(widget, u'低精度图片') widget2 = QWidget() widget2.setLayout(QVBoxLayout()) self.MlineEdit_level = MLineEdit() tool_button = MLabel(text=u'精度').mark().secondary() tool_button.setAlignment(Qt.AlignCenter) tool_button.setFixedWidth(80) self.MlineEdit_level.set_prefix_widget(tool_button) self.MlineEdit_level.setText("50") self.MlineEdit_level.setValidator(QIntValidator()) widget2.layout().addWidget(MLabel(u'模型精度')) widget2.layout().addWidget(self.MlineEdit_level) widget2.layout().addSpacing(100) self.tab.add_tab(widget2, u'低精度模型') btn_layout = QHBoxLayout() self.btn_ok = MPushButton(text=u'导出').primary() self.btn_ok.setFixedWidth(80) self.btn_cancel = MPushButton(text=u'取消').primary() self.btn_cancel.setFixedWidth(80) btn_layout.addWidget(self.btn_ok) btn_layout.addWidget(self.btn_cancel) main_lay = QVBoxLayout() main_lay.addSpacing(20) main_lay.addWidget(MDivider(u'路径选择')) main_lay.addLayout(lay_1) main_lay.addWidget(MDivider(u'操作选择')) main_lay.addWidget(self.tab) main_lay.addWidget(MDivider(u'')) main_lay.addLayout(btn_layout) main_lay.addSpacing(20) self.setLayout(main_lay) dayu_theme.background_color = "#262626" dayu_theme.apply(self)
def __init__(self, parent=None): super(MCompleter, self).__init__(parent) dayu_theme.apply(self.popup())