PYQT5之界面和逻辑分离式设计
综述
在刚开始学习pyqt时,界面多是手写,所以会把界面设计和功能的实现写在同一个类里,导致代码过长,也不好修改。在qt中,一个界面分为ui文件和cpp文件,故我们可以在pyqt中用同样的方式。
界面
相当于ui文件
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class Ui_XXX(QObject):
def __init__(self):
super(Ui_XXX, self).__init__()
def setUi(self, form):
'''为窗口设置UI
:param form: 要设置的窗口
:return:
'''
box = QHBoxLayout(form)
box.setSizeConstraint(QLayout.SetFixedSize) #窗口会随内容改变大小
box.setContentsMargins(0, 0, 0, 0)
box.setSpacing(0)
self.wid = QWidget()
box.addWidget(self.wid)
self.retranslateUi(form)
def retranslateUi(self, form):
'''设置界面样式
:param form: 界面
:return: None
'''
self.wid.setStyleSheet('QWidget{background-color:#393C44;color:#ffffff;}')
用设计师完成界面
习惯使用qt designer设计界面的,也可以通过pyuic转换成py文件
pycharm添加designer
在Settings界面Tools->External Tools里添加designer工具
在Program里找到Anaconda安装目录下的Library\bin\designer.exe
Working directory里填$FileDir$即可
完成后即有
pycharm添加pyuic
同样的位置,添加pyuic
在Program里找到Anaconda安装目录下的envs\client\Scripts\pyuic5.exe
Arguments里填入
$FileName$ -o $FileNameWithoutExtension$.py
Working directory里填$ProjectFileDir$即可
转换ui文件
在设计师生成的ui文件上右键,如图:
点击pyuic即可生成同名py文件
逻辑
相当于cpp文件
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from ui.Ui_xxx import Ui_XXX #上面的界面文件
class XXX(QWidget, Ui_XXX):
def __init__(self):
super(XXX, self).__init__()
Ui_XXX.__init__(self)
self.setUi(self)
if __name__ == '__main__':
app = QApplication(sys.argv)
mainWindow = XXX()
mainWindow.show()
sys.exit(app.exec_())
版权声明:本文为weixin_44515442原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。