Python PyQt 界面美化应用程序 - 水线检测工具
import sys\nimport os\nimport platform\n\n# IMPORT / GUI AND MODULES AND WIDGETS\n# ///////////////////////////////////////////////////////////////\nfrom modules import *\nfrom widgets import \nos.environ["QT_FONT_DPI"] = "96" # FIX Problem for High DPI and Scale above 100%\n\n# SET AS GLOBAL WIDGETS\n# ///////////////////////////////////////////////////////////////\nwidgets = None\n\nclass MainWindow(QMainWindow):\n def init(self):\n QMainWindow.init(self)\n\n # SET AS GLOBAL WIDGETS\n # ///////////////////////////////////////////////////////////////\n self.ui = Ui_MainWindow()\n self.ui.setupUi(self)\n global widgets\n widgets = self.ui\n\n # USE CUSTOM TITLE BAR | USE AS "False" FOR MAC OR LINUX\n # ///////////////////////////////////////////////////////////////\n Settings.ENABLE_CUSTOM_TITLE_BAR = True\n\n # APP NAME\n # ///////////////////////////////////////////////////////////////\n title = "界面美化"\n description = "水线检测"\n # APPLY TEXTS\n self.setWindowTitle(title)\n widgets.titleRightInfo.setText(description)\n\n # TOGGLE MENU\n # ///////////////////////////////////////////////////////////////\n widgets.toggleButton.clicked.connect(lambda: UIFunctions.toggleMenu(self, True))\n\n # SET UI DEFINITIONS\n # ///////////////////////////////////////////////////////////////\n UIFunctions.uiDefinitions(self)\n\n # QTableWidget PARAMETERS\n # ///////////////////////////////////////////////////////////////\n widgets.tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)\n\n # BUTTONS CLICK\n\n # ///////////////////////////////////////////////////////////////\n\n # LEFT MENUS\n widgets.btn_home.clicked.connect(self.buttonClick)\n widgets.btn_widgets.clicked.connect(self.buttonClick)\n widgets.btn_new.clicked.connect(self.buttonClick)\n widgets.btn_save.clicked.connect(self.buttonClick)\n widgets.btn_new_2.clicked.connect(self.buttonClick)\n self.ui.pushButton_2.clicked.connect(lambda :AppFunctions.btnClicked(self.ui))\n\n\n # EXTRA LEFT BOX\n def openCloseLeftBox():\n UIFunctions.toggleLeftBox(self, True)\n widgets.toggleLeftBox.clicked.connect(openCloseLeftBox)\n widgets.extraCloseColumnBtn.clicked.connect(openCloseLeftBox)\n\n # EXTRA RIGHT BOX\n def openCloseRightBox():\n UIFunctions.toggleRightBox(self, True)\n widgets.settingsTopBtn.clicked.connect(openCloseRightBox)\n\n # SHOW APP\n # ///////////////////////////////////////////////////////////////\n self.show()\n\n # SET CUSTOM THEME\n # ///////////////////////////////////////////////////////////////\n useCustomTheme = False\n themeFile = "themes\py_dracula_light.qss"\n\n # SET THEME AND HACKS\n if useCustomTheme:\n # LOAD AND APPLY STYLE\n UIFunctions.theme(self, themeFile, True)\n\n # SET HACKS\n AppFunctions.setThemeHack(self)\n\n # SET HOME PAGE AND SELECT MENU\n # ///////////////////////////////////////////////////////////////\n widgets.stackedWidget.setCurrentWidget(widgets.home)\n widgets.btn_home.setStyleSheet(UIFunctions.selectMenu(widgets.btn_home.styleSheet()))\n\n\n # BUTTONS CLICK\n # Post here your functions for clicked buttons\n self.ui.pushButton.clicked.connect(lambda: print(QFileDialog.getOpenFileName(self, '选择文件', '.', '所有文件(.py .uic)')))\n # ///////////////////////////////////////////////////////////////\n def buttonClick(self):\n # GET BUTTON CLICKED\n btn = self.sender()\n btnName = btn.objectName()\n\n # SHOW HOME PAGE\n if btnName == "btn_home":\n widgets.stackedWidget.setCurrentWidget(widgets.home)\n UIFunctions.resetStyle(self, btnName)\n btn.setStyleSheet(UIFunctions.selectMenu(btn.styleSheet()))\n\n # SHOW WIDGETS PAGE\n if btnName == "btn_widgets":\n widgets.stackedWidget.setCurrentWidget(widgets.widgets)\n UIFunctions.resetStyle(self, btnName)\n btn.setStyleSheet(UIFunctions.selectMenu(btn.styleSheet()))\n\n # SHOW NEW PAGE\n if btnName == "btn_new":\n widgets.stackedWidget.setCurrentWidget(widgets.new_page) # SET PAGE\n UIFunctions.resetStyle(self, btnName) # RESET ANOTHERS BUTTONS SELECTED\n btn.setStyleSheet(UIFunctions.selectMenu(btn.styleSheet())) # SELECT MENU\n\n if btnName == "btn_new_2":\n widgets.stackedWidget.setCurrentWidget(widgets.page) # SET PAGE\n UIFunctions.resetStyle(self, btnName) # RESET ANOTHERS BUTTONS SELECTED\n btn.setStyleSheet(UIFunctions.selectMenu(btn.styleSheet())) # SELECT MENU\n\n if btnName == "btn_save":\n print("Save BTN clicked!")\n\n if btnName == "btn_exit":\n print("Exit BTN clicked!")\n\n # PRINT BTN NAME\n print(f'Button "{btnName}" pressed!')\n\n\n # RESIZE EVENTS\n # ///////////////////////////////////////////////////////////////\n def resizeEvent(self, event):\n # Update Size Grips\n UIFunctions.resize_grips(self)\n\n # MOUSE CLICK EVENTS\n # ///////////////////////////////////////////////////////////////\n def mousePressEvent(self, event):\n # SET DRAG POS WINDOW\n self.dragPos = event.globalPos()\n\n # PRINT MOUSE EVENTS\n if event.buttons() == Qt.LeftButton:\n print('Mouse click: LEFT CLICK')\n if event.buttons() == Qt.RightButton:\n print('Mouse click: RIGHT CLICK')\n\nif name == "main":\n app = QApplication(sys.argv)\n app.setWindowIcon(QIcon("icon.ico"))\n window = MainWindow()\n sys.exit(app.exec())
原文地址: https://www.cveoy.top/t/topic/qinQ 著作权归作者所有。请勿转载和采集!