Python使用QtSide6(PyQt)编写界面

1、安装QtSide6

开始菜单cmd

创建虚拟环境

python -m venv env2

 

进入虚拟环境

call env2/scripts/activate

安装Pyside6 

pip install Pyside6

2、设计Qt界面

打开designer.exe,设计界面

点击菜单【窗体】【View Python Code...】,点击【全部复制】按钮进行复制

3、使用Qt界面

打开PyCharm,新建工程,选择虚拟环境的python.exe

新建ui.py,将designer中的Python代码粘贴过去

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

################################################################################
## Form generated from reading UI file 'untitledugPqGJ.ui'
##
## Created by: Qt User Interface Compiler version 6.7.2
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################

from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
    QMetaObject, QObject, QPoint, QRect,
    QSize, QTime, QUrl, Qt)
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
    QFont, QFontDatabase, QGradient, QIcon,
    QImage, QKeySequence, QLinearGradient, QPainter,
    QPalette, QPixmap, QRadialGradient, QTransform)
from PySide6.QtWidgets import (QApplication, QDialog, QLineEdit, QPushButton,
    QSizePolicy, QWidget)

class Ui_Dialog(object):
    def setupUi(self, Dialog):
        if not Dialog.objectName():
            Dialog.setObjectName(u"Dialog")
        Dialog.resize(400, 300)
        self.pushButton = QPushButton(Dialog)
        self.pushButton.setObjectName(u"pushButton")
        self.pushButton.setGeometry(QRect(200, 220, 75, 24))
        self.lineEdit = QLineEdit(Dialog)
        self.lineEdit.setObjectName(u"lineEdit")
        self.lineEdit.setGeometry(QRect(130, 70, 113, 20))

        self.retranslateUi(Dialog)
        QMetaObject.connectSlotsByName(Dialog)
    # setupUi

    def retranslateUi(self, Dialog):
        Dialog.setWindowTitle(QCoreApplication.translate("Dialog", u"Dialog", None))
        self.pushButton.setText(QCoreApplication.translate("Dialog", u"\u70b9\u51fb", None))
    # retranslateUi

新建main.py

from symtable import Class

from ui import Ui_Dialog
import sys
from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton
from PySide6 import QtCore, QtGui

class Main(QMainWindow):
    def __init__(self):
        QMainWindow.__init__(self)

    def on_clicked2(self):
        auto_ui_window.lineEdit.setText("clicked2")
        print("Button click2")

def on_clicked1():
    auto_ui_window.lineEdit.setText("clicked1")
    print("button click")

if __name__ == "__main__":
    app = QApplication(sys.argv)
    main_window = Main()
    auto_ui_window = Ui_Dialog()
    auto_ui_window.setupUi(main_window)

    #事件处理方法1
    #auto_ui_window.pushButton.clicked.connect(on_clicked1)

    # 事件处理方法2
    QtCore.QObject.connect(auto_ui_window.pushButton, QtCore.SIGNAL("clicked()"), main_window,QtCore.SLOT('on_clicked2()'))

    main_window.show()
    app.exec()
    sys.exit(app.exec())

运行效果

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyQt6是一个Python的GUI框架,它可以用来开发交互式的桌面应用程序。在PyQt6中,逻辑和界面是分离的。这种分离的好处是可以更好地组织代码,并且可以让不同的开发人员专注于不同的任务。 实现PyQt6逻辑界面分离的方法如下: 1. 使用Qt Designer创建UI文件。Qt Designer是一个可视化的工具,可以帮助我们快速创建GUI界面。将所有的界面元素都放在UI文件中,而不是在代码中硬编码。 2. 使用PyUIC将UI文件转换成Python代码。PyUIC是一个命令行工具,它可以将UI文件转换成Python代码。使用命令行运行PyUIC,将UI文件转换成Python代码,并将其保存到一个.py文件中。 3. 在Python代码中编写逻辑代码。将所有的逻辑代码都放在一个单独的.py文件中。这个文件可以包含所有与界面相关的逻辑代码,例如按钮点击事件、文本输入等等。 4. 使用PyQt6加载UI文件并连接逻辑代码。在主程序中,使用PyQt6加载UI文件并连接逻辑代码。使用QMainWindow或QDialog作为主窗口,并将UI文件中的所有控件添加到主窗口中。连接逻辑代码和信号槽,以便在用户与界面交互时执行逻辑代码。 下面是一个简单的示例代码,演示了如何在PyQt6中实现逻辑和界面的分离: ```python # main.py from PyQt6.QtWidgets import QApplication, QMainWindow from PyQt6.uic import loadUi from logic import Logic class MainWindow(QMainWindow): def __init__(self): super().__init__() # Load the UI file loadUi('ui/mainwindow.ui', self) # Create an instance of the logic class self.logic = Logic() # Connect the buttons to the logic functions self.pushButton.clicked.connect(self.logic.on_button_clicked) if __name__ == '__main__': app = QApplication([]) window = MainWindow() window.show() app.exec() ``` ```python # logic.py class Logic: def on_button_clicked(self): print('Button clicked') ``` 在这个示例中,我们将界面元素放在了ui/mainwindow.ui文件中。我们使用loadUi()方法将UI文件加载到主窗口中。我们还创建了一个Logic类,其中包含了所有与界面相关的逻辑代码。我们将按钮的点击事件连接到Logic类中的on_button_clicked()函数。这样,当用户点击按钮时,逻辑代码就会执行。 通过这种方式,我们可以将逻辑和界面分离,使代码更清晰、更易于维护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值