(一)PyQt5系列教程:使用PyQt5创建一个简单的demo

(一)PyQt5系列教程:使用PyQt5创建一个简单的demo

一、环境配置:

1. python下载(建议python3.8版本以上)和安装

2. pycharm下载和安装

3. PyQr5下载和安装

4. 在pycharm中添加对应的PyQt5的包

5.设置PyQt5的设计器,将PyQt5文件转换成python:


复制designer.exe的路径:


然后打开setting,配置外部工具:(可以在pycharm直接调用软件外的工具)

Program:是刚才复制的路径;
Arguement填如下面参数:

 -m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py


然后回到pycharm,打开外部工具Qt designer:

调用了Pycharm外部的Qt designer。然后创建一个空工程文件,保存。保存的过程文件会在pycharm中出现

点击窗口的中的部件,右边有相对应的属性可以进行设置:

对pycharm中的Qt designer创建并保存的.ui工程文件中进行转换成python文件:

完整代码:

import sys
from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(400, 300)
        self.buttonBox = QtWidgets.QDialogButtonBox(Dialog)
        self.buttonBox.setGeometry(QtCore.QRect(30, 240, 341, 32))
        self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok)
        self.buttonBox.setObjectName("buttonBox")

        self.retranslateUi(Dialog)
        self.buttonBox.accepted.connect(Dialog.accept)
        self.buttonBox.rejected.connect(Dialog.reject)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "Dialog"))

if __name__ == '__main__':

# QT提供的默认基类QMainWindow、QWidget、QDialog这三种。
# QMainWindow是带有菜单栏和工具栏的主窗口
# QtWidgets是PyQt5下面的一个模块,包括了用于构建界面的一系列UI元数组件
# QApplication包括窗口系统和其他来源处理过和发送过的主事件循环,有且只有一个QApplication对象
# QDialog是各种对话框的基类,窗口部件全部继承自QWidget。(本身没有菜单栏和工具栏)

    app = QtWidgets.QApplication(sys.argv)  # 实例化一个应用对象
    MainWindow = QtWidgets.QDialog()
    ui = Ui_Dialog()
    ui.setupUi(MainWindow)     # 初始化窗口:吧Qt设计器设计的内容画出来,定义的信号和槽建立起来。(画界面和写程序的桥梁)
    MainWindow.setWindowTitle("666")  # 标题
    MainWindow.show()              # 显示窗口
    sys.exit(app.exec_())          # 程序循环,等待安全退出

点击运行:

如果在Qt Designer创建Main Window:

则代码部分为:

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

# Form implementation generated from reading ui file '03.ui'
#
# Created by: PyQt5 UI code generator 5.15.4
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.

import sys
from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(1025, 820)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap("C:/Users/hdy/Pictures/logo.ico.bmp"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        MainWindow.setWindowIcon(icon)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.widget = QtWidgets.QWidget(self.centralwidget)
        self.widget.setGeometry(QtCore.QRect(200, 240, 274, 30))
        self.widget.setObjectName("widget")
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.widget)
        self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.horizontalLayout = QtWidgets.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.lineEdit = QtWidgets.QLineEdit(self.widget)
        self.lineEdit.setObjectName("lineEdit")
        self.horizontalLayout.addWidget(self.lineEdit)
        self.horizontalLayout_2.addLayout(self.horizontalLayout)
        self.Button = QtWidgets.QPushButton(self.widget)
        self.Button.setObjectName("Button")
        self.horizontalLayout_2.addWidget(self.Button)
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 1025, 26))
        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.Button.setText(_translate("MainWindow", "Button"))


if __name__ == '__main__':

# QT提供的默认基类QMainWindow、QWidget、QDialog这三种。
# QMainWindow是带有菜单栏和工具栏的主窗口
# QtWidgets是PyQt5下面的一个模块,包括了用于构建界面的一系列UI元数组件
# QApplication包括窗口系统和其他来源处理过和发送过的主事件循环,有且只有一个QApplication对象
# QDialog是各种对话框的基类,窗口部件全部继承自QWidget。(本身没有菜单栏和工具栏)

    app = QtWidgets.QApplication(sys.argv)  # 实例化一个应用对象
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)     # 初始化窗口:吧Qt设计器设计的内容画出来,定义的信号和槽建立起来。(画界面和写程序的桥梁)
    MainWindow.setWindowTitle("666")  # 标题
    MainWindow.show()              # 显示窗口
    sys.exit(app.exec_())          # 程序循环,等待安全退出

来源:Kkh_8686

物联沃分享整理
物联沃-IOTWORD物联网 » (一)PyQt5系列教程:使用PyQt5创建一个简单的demo

发表评论