Pycharm配置pyside6

安装pyside6.7+python3.12

1. 配置Pycharm外部工具

参考:https://blog.csdn.net/weixin_44779079/article/details/144874369

使用PySide2框架需要三个工具辅助开发, 分别是Qt Designer、PySide-uic以及PySide-rcc,三者功能如下:

Qt Designer:可视化编辑UI界面,生成.ui文件。

PySide-uic: 将.ui文件转换为.py文件,以便修改和导入。

PySide-rcc: 将.qrc文件(资源文件)转换为.py文件。

程序通常在如下目录:

[安装目录]\Scripts\pyside6-designer.exe

[安装目录]\Scripts\pyside6-rcc.exe

[安装目录]\Scripts\pyside6-uic.exe

各项工具的配置信息如下:

1.1 Qt Designer

名称:任意即可(建议pyside6-designer)

组:pyside6

程序:$PyInterpreterDirectory$/pyside6-designer.exe

实参:$FilePath$

工作目录:$FileDir$

1.2 pyside6-rcc

名称:任意即可(建议ui2py,这样一目了然)

组:pyside6

程序:$PyInterpreterDirectory$/pyside6-rcc.exe

实参:$FileName$ -o $FileNameWithoutExtension$_rc.py

工作目录:$FileDir$

1.3 pyside6-uic

名称:任意即可(建议pyside2-uic,理由同上)

组:pyside6

程序:$PyInterpreterDirectory$/pyside6-uic.exe

实参:$FileName$ -o $FileNameWithoutExtension$.py

工作目录:$FileDir$

2. 初始化模板

window.ui, 需要创建QMainWindow,QWidget不支持自适应布局

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>MainWindow</class>
 <widget class="QMainWindow" name="MainWindow">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>800</width>
    <height>600</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>MainWindow</string>
  </property>
  <widget class="QWidget" name="centralwidget">
   <layout class="QHBoxLayout" name="horizontalLayout">
    <item>
     <widget class="QPushButton" name="pushButton">
      <property name="text">
       <string>PushButton</string>
      </property>
     </widget>
    </item>
   </layout>
  </widget>
  <widget class="QMenuBar" name="menubar">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>800</width>
     <height>22</height>
    </rect>
   </property>
  </widget>
  <widget class="QStatusBar" name="statusbar"/>
 </widget>
 <resources/>
 <connections/>
</ui>

通过pyside6-uic将ui文件转为py文件

Metatrader5UI.py

from PySide6.QtCore import *

class Ui_window(object):
    def setupUi(self, window):
        if not window.objectName():
            window.setObjectName(u"window")
        window.resize(716, 530)
        self.retranslateUi(window)
        QMetaObject.connectSlotsByName(window)
    # setupUi

    def retranslateUi(self, window):
        window.setWindowTitle(QCoreApplication.translate("window", u"Form", None))
    # retranslateUi

main.py

from PySide6.QtWidgets import *
import sys
from metatrader5.com.ui.window import Ui_window

# 窗口类
class Metatrader5UI(QMainWindow,Ui_window):
    # QMainWindow是窗口类型,Ui_MainWindow是ui转换后文件的那个class名,一般是Ui_窗口objectName
    def __init__(self):
        super().__init__()
        self.setupUi(self)      # 初始化ui
        self.show()     # 显示窗口


if __name__ == "__main__":
    app = QApplication()        # 初始化Application
    window = Metatrader5UI()             # 启动窗口
    sys.exit(app.exec_())       # 窗口关闭后退出   PySide6
posted @ 2025-06-27 11:02  hbr2  阅读(709)  评论(0)    收藏  举报