最近开始上手PythonQt项目的学习,咕记本笔记

首先是PyQt的安装,直接pip走起

pip install pyqt5
pip install pyqt5-tools

如果你想直接代码写界面,直接第一行就可以了(类似于JAVA直接裸写Jpanel),这样的效率极低,更加推荐的是使用图形化的设计方式,因此需要安装下面的内容,安装完毕后,直接搜索栏搜索并打开:Desginer

如果找不到可以Python的安装目录中的 \Library\bin 找到执行文件

搜索栏打开即可,如果需要可以自行创建桌面快捷方式

打开完成之后会看到这个页面(一个很经典的界面设计页面),我们一般而言不创建web端的话直接选择Main Window或者Wieget就可以了。

以选择Main Windows【主窗体】为例,直接创建之后会看到一个类似于空白程序的页面,这就也是我们的设计页面了,左边是我们的控件栏,右边则是我们的状态栏,其中最上面的类似于一个资源管理器,它能够有效的关系各个组件以及各个画面之间的层级关系(比如父级子级关系),中间的界面就是控件,或者窗体本身的属性界面,在这个界面之中,可以设置各种基本的属性(如字体等)

我们可以试着写一个UI设计中的Hello World,拖动旁边的Label标签到中央,双击修改文字内容,写上“Hello World — 你好,世界”,之后在属性框中选择Font【字体】,并打开字体相关选择界面,选择一个合适的字体和合适的字号大小,是否加粗等等常规选择。(注意,此时的字体选择和Windows自带字体有关,同时中文的支持也和系统的支持有关,注意的朋友会发现,新版本会进行local地点规类,会默认把我们导到China中)

在完成基本的Hello World之后,如何在Python中展示呢?

ctrl+s保存文件到一个合适的项目地址,打开命令行,cd命令移动到项目地址,保存时会将数据保存为一个.ui格式的文件,我们使用命令将.ui文件进行转化为.py文件。

pyuic5 -o XXXX.py XXXX.ui
#XXXX为你自定义的文件名,可以两者不一样

此时得到转换后的py代码文件,使用名为Ui_MainWindow的类表示

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'hello.ui'
#
# Created by: PyQt5 UI code generator 5.13.0
#
# WARNING! All changes made in this file will be lost!


from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(800, 600)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(170, 190, 461, 151))
        font = QtGui.QFont()
        font.setFamily("隶书")
        font.setPointSize(24)
        self.label.setFont(font)
        self.label.setObjectName("label")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 23))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.label.setText(_translate("MainWindow", "Hello World -- 你好,世界"))

别着急,此时代码运行是没有任何结果的,我们需要将这个类其中的元素进行加载和调用才能正常使用,我们需要新建一个python文件进行对代码的调用。

from PyQt5 import QtCore, QtGui, QtWidgets
import sys
import hello    #之前的文件名称,作为一个包导入

app = QtWidgets.QApplication(sys.argv)  # 创建一个QApplication,也就是你要开发的软件app
MainWindow = QtWidgets.QMainWindow()    # 创建一个QMainWindow,用来装载你需要的各种组件、控件
ui = hello.Ui_MainWindow()              # ui是Ui_MainWindow()类的实例化对象
ui.setupUi(MainWindow)                  # 执行类中的setupUi方法,方法的参数是第二步中创建的QMainWindow
MainWindow.show()                       # 执行QMainWindow的show()方法,显示这个QMainWindow
sys.exit(app.exec_())                   # 使用exit()或者点击关闭按钮退出QApplication

#注意第七行的hello为你创建的类名

效果达成


0 条评论

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用 * 标注