pyside6 常用窗口界面模板

本文介绍了如何使用Pyside6创建一个基础的窗口界面,包含UI类导入、QThread处理异步逻辑、信号与槽的连接以及自定义UI效果。展示了如何在主线程和工作线程间传递参数并执行相应操作。
摘要由CSDN通过智能技术生成

pyside6 常用窗口界面模板

start

  • 今天整理一下我使用次数最多的 pyside6 代码模板。

代码

import sys
from Ui_ui import Ui_lookLiveRoom  # 导入你的UI类

from PySide6.QtCore import QThread, Signal
from PySide6.QtWidgets import (
    QApplication,
    QMainWindow,
    QListWidgetItem,
)


def start_click():
    print("异步逻辑")


class WorkerThread(QThread):
    updateSignal = Signal(int)

    def __init__(self):
        super().__init__()
        self.parameter = ""  # 默认参数值

    def setParameter(self, parameter):
        self.parameter = parameter

    def getParameter(self):
        return self.parameter

    def run(self):
        print("传入的参数 " + self.parameter)
        if self.parameter == "startClick":
            # 开始按钮点击了
            start_click()

        # 发出任务完成信号
        self.finished.emit()


class MainWindow(QMainWindow, Ui_lookLiveRoom):
    def __init__(self):
        super().__init__()
        self.setupUi(self)  # 加载ui文件
        self.init_change()  # 设置自定义的ui界面效果

        # # 初始化多线程-信号与槽
        self.worker = WorkerThread()
        self.worker.finished.connect(self.task_finished)  # 绑定任务完成信号

    # 设置自定义的ui界面效果
    def init_change(self):

        self.setWindowTitle("lazyTomato专属模板")
        self.setFixedSize(800, 530)

    def task_finished(self):
        if self.worker.getParameter() == "startClick":
            print("程序结束运行")

    def run_script(self):
        self.worker.setParameter("startClick")
        self.worker.start()


def main():
    app = QApplication(sys.argv)
    main_window = MainWindow()

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


main()

在这里插入图片描述

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
可以通过以下步骤实现登录界面和主界面的切换: 1. 创建登录界面和主界面的类,分别继承自 `QDialog` 和 `QMainWindow`。 2. 在登录界面的 `__init__` 方法中,创建用户名和密码的输入框、登录按钮等控件,并将它们添加到布局中。 3. 为登录按钮添加点击事件处理函数,当用户点击登录按钮时,获取用户名和密码输入框的文本内容,并进行验证。 4. 如果验证通过,隐藏登录界面,显示主界面。可以使用 `hide()` 和 `show()` 方法实现界面的显示和隐藏。 5. 在主界面中,添加一个菜单栏或工具栏,其中包含一个退出按钮。为退出按钮添加点击事件处理函数,在函数中退出应用程序。 下面是一个示例代码,仅供参考: ```python from PySide6.QtWidgets import QApplication, QDialog, QMainWindow, QVBoxLayout, QHBoxLayout, QLineEdit, QPushButton, QLabel, QAction class LoginDialog(QDialog): def __init__(self): super().__init__() self.setWindowTitle("Login") # 创建用户名和密码输入框 self.username_edit = QLineEdit() self.password_edit = QLineEdit() self.password_edit.setEchoMode(QLineEdit.Password) # 创建登录按钮 self.login_button = QPushButton("Login") # 将控件添加到布局中 layout = QVBoxLayout() layout.addWidget(QLabel("Username:")) layout.addWidget(self.username_edit) layout.addWidget(QLabel("Password:")) layout.addWidget(self.password_edit) layout.addWidget(self.login_button) self.setLayout(layout) # 为登录按钮添加点击事件处理函数 self.login_button.clicked.connect(self.login) def login(self): # 获取用户名和密码 username = self.username_edit.text() password = self.password_edit.text() # 进行验证,这里简单判断用户名和密码是否为空 if username and password: # 验证通过,隐藏登录界面,显示主界面 self.hide() self.main_window.show() else: # 验证不通过,弹出提示框 QMessageBox.warning(self, "Error", "Invalid username or password") class MainWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("Main") # 创建菜单栏和退出按钮 menu_bar = self.menuBar() file_menu = menu_bar.addMenu("File") exit_action = QAction("Exit", self) exit_action.triggered.connect(QApplication.quit) file_menu.addAction(exit_action) if __name__ == "__main__": app = QApplication() login_dialog = LoginDialog() main_window = MainWindow() login_dialog.main_window = main_window main_window.login_dialog = login_dialog main_window.show() login_dialog.exec_() ``` 在上面的代码中,我们创建了 `LoginDialog` 和 `MainWindow` 两个类,分别表示登录界面和主界面。在 `LoginDialog` 中,我们创建了用户名和密码的输入框以及登录按钮,并为登录按钮添加了点击事件处理函数。在点击登录按钮时,我们获取用户名和密码输入框的文本内容,并进行简单的验证,如果验证通过,则隐藏登录界面,显示主界面。 在 `MainWindow` 中,我们创建了一个菜单栏以及一个退出按钮,并为退出按钮添加了点击事件处理函数,在点击退出按钮时退出应用程序。 在主程序中,我们创建了 `LoginDialog` 和 `MainWindow` 的实例,并将它们相互引用,以便在登录界面中可以访问主界面,在主界面中可以访问登录界面。我们首先显示主界面,然后使用 `exec_()` 方法显示登录界面,这样可以保证程序在登录界面关闭之前不会继续执行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lazy_tomato

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值