【翻译】Qt for Python(PySide6)官方文档:(1)Qt for Python 快速入门_pyside6官方文档中文版_水墨熊猫的博客-程序员资料

技术标签: python  Qt  PyCharm  PySide6  Python  

原文地址:https://doc.qt.io/qtforpython/quickstart.html

环境要求

PySide6的安装需要如下环境支持:

  • Python 3.6+
  • 建议使用虚拟环境,比如 venv 或 virtualenv

创建并激活虚拟环境

终端运行如下命令(译者注:官方是这样写的,实际上是用PyCharm 自2019.3.3版本之后可自动设置虚拟开发环境,可自行查阅)

TODO: 单独写个PyCharm自动设置虚拟开发环境的教程

$ python -m venv env/       # Your binary is maybe called 'python3'
$ source env/bin/activate   # for Linux and macOS
$ env\Scripts\activate.bat  # for Windows

安装

使用pip安装,非常简单(译者注:如果安装出错请检查python版本是否为64位)

# For the latest version on PyPi
pip install PySide6

# For a specific version
pip install PySide6==6.0

还可以通过如下方式安装

pip install --index-url=http://download.qt.io/snapshots/ci/pyside/6.0.0/latest pyside6 --trusted-host download.qt.io

(译者注:http://download.qt.io/snapshots/ci/pyside/6.0.0/latest/pyside6/ 截图如下,从win_amd64的字样来看,貌似Python 32位环境无法正常安装PySide6,我也是换到Python3.9 64位才成功安装的,尴尬笑!)
PySide6 官方下载页面

测试安装

现在已经成功安装了PySide6,来拉出来溜溜~~~

import PySide6.QtCore

# Prints PySide6 version
print(PySide6.__version__)

# Prints the Qt version used to compile PySide6
print(PySide6.QtCore.__version__)

简单应用示例

既然已经安装完成,不能免俗的要来个“Hello Word”以示致敬。

  1. 创建一个名为 hello _ world.py 的新文件,并复制如下代码:
import sys
import random
from PySide6 import QtCore, QtWidgets, QtGui

PySide6 的Python模块支持子模块导入,如上我们导入了QtCore, QtWidgets, QtGui 3个子模块。
2. 定义名为 MyWidget 的类,它继承了 QWidget 类 并包含了 QPushButtonQLabel 2个组件 :

class MyWidget(QtWidgets.QWidget):
    def __init__(self):
        super().__init__()

        self.hello = ["Hallo Welt", "Hei maailma", "Hola Mundo", "Привет мир"]

        self.button = QtWidgets.QPushButton("Click me!")
        self.text = QtWidgets.QLabel("Hello World",
                                     alignment=QtCore.Qt.AlignCenter)

        self.layout = QtWidgets.QVBoxLayout()
        self.layout.addWidget(self.text)
        self.layout.addWidget(self.button)
        self.setLayout(self.layout)

        self.button.clicked.connect(self.magic)

    @QtCore.Slot()
    def magic(self):
        self.text.setText(random.choice(self.hello))

MyWidget 类定义了一个magic函数,该函数从 hello 列表中随机选择一个值。当您单击该按钮时,将调用这个magic函数并显示输出。

  1. 最后添加一个 main 函数,实例化 MyWidget 并显示它:
if __name__ == "__main__":
    app = QtWidgets.QApplication([])

    widget = MyWidget()
    widget.resize(800, 600)
    widget.show()

    sys.exit(app.exec_())

运行示例
Bingo~,它跑起来了,点击按钮试试能收到哪国语言的问候!

扩展阅读

Qt Designer 最新中文手册文档(Qt6)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lxbin/article/details/111897436

智能推荐

Beta版:产品(驱动、BIOS)发布之前的测试版本,也叫做β版,与此对应的还有α版(Alpha版)。α版通常是软件开发商内部自行测试的版本,而β版则是公开发布让用户来进行测试的版本。_wenzhoufeng的博客-程序员资料

Beta版:产品(驱动、BIOS)发布之前的测试版本,也叫做β版,与此对应的还有α版(Alpha版)。α版通常是软件开发商内部自行测试的版本,而β版则是公开发布让用户来进行测试的版本。 版本号里面的Build说明这个版本是第几次编译的结果,比如: V1.79Build210比V1.79Build200的版本要新,因为V1.79Build210是"电子文档处理器"第210次编译的版本。 Alpha:

【Docker系列】容器快速上手_快速上手容器开发_小叶柏杉的博客-程序员资料

Docker CLI 命令行介绍Docker VersionWindows (Intel芯片)Server 的 OS/Arch: linux/amd64是因为Windows内置的hyper-V或者wsl2的虚拟机,是搭载的Linux系统,把docker的服务端放到了虚拟机中。$ docker versionClient: Docker Engine - CommunityCloud integration: 1.0.12Version: 20.10.5API vers

1>libcmt.lib(invarg.obj) : error LNK2005: __initp_misc_invarg 已经在 libcmtd.lib(invarg.obj) 中定义 1>li_清水迎朝阳的博客-程序员资料

1>libcmt.lib(invarg.obj) : error LNK2005: __initp_misc_invarg 已经在 libcmtd.lib(invarg.obj) 中定义1>libcmt.lib(invarg.obj) : error LNK2005: __call_reportfault 已经在 libcmtd.lib(invarg.obj) 中定义 转化

随便推点

java反序列化字节转字符串工具--SerializationDumper-v1.12_字节反序列化成字符串_qq_40624810的博客-程序员资料

下载地址:https://github.com/NickstaDB/SerializationDumper一段数据如果以aced开头,那么他就是这一段java序列化的16进制用法 :java -jar SerializationDumper-v1.1.jar aced000573720026636e2e656d61792e...

API 23 inputmethodservice.KeyboardView——属性分析_沈夜大祭司的博客-程序员资料

参阅:http://android.xsoftlab.net/reference/android/inputmethodservice/KeyboardView.html public classKeyboardViewextends Viewimplements View.OnClickListenerAdded in API level3

计算机原理考研题库,2021年计算机组成原理考研题库_世异的博客-程序员资料

**部分 名校考研真题一、选择题1.计算机硬件能够直接执行的是(  )。[2015年联考真题]Ⅰ.机器语言程序Ⅱ.汇编语言程序Ⅲ.硬件描述语言程序A.仅ⅠB.仅ⅠⅡC.仅ⅠⅢD.ⅠⅡⅢ【答案】A【解析】机器语言是计算机**可以直接执行的语言。汇编语言属于低级语言,但其源程序必须要翻译成目标程序成为机器语言程序后才能被直接执行。硬件描述语言是电子系统硬件行为描述、结构描述、数据流描述的语言。...

数据库学习笔记【MySQL】_mysql decision关键字_vx-Yang_Gaige的博客-程序员资料

一、数据库基础1、为什么要使用数据库持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。持久化的大多数时候是将内存中的数据存储在数据库中,当然也可以存储在磁盘文件、XML数据文件中。方便管理数据(例如:快速的检索等)2、什么是数据库DB:数据库(Database)即存储数据的“仓库”。它保存了一系列有组织的数据。DBMS:数据库管理系统(Dat...

Servlet概要配置_无风不起浪起浪又怎样的博客-程序员资料

1 servlet继承于HttpServlet 简单使用如下: 2 代码  Japackage com.test.action;    import java.io.IOException;  import java.io.PrintWriter;    import javax.servlet.ServletException;  import jav

kubernetes集群实战——网络插件flannel和calico应用于跨主机调度通信_Li_barroco的博客-程序员资料

1. Flannel 跨主机通信解决上篇博客在访问时的跨节点流量卡顿问题承接上篇博客的公有ip172.25.12.100配置1.1 host-gw模式cp /home/kubeadm/kube-flannel.yml . ##将flannel.yml pod清单复制到当前目录下kubectl delete -f kube-flannel.yml ##删除之前应用的flannel网络插件vim kube-flannel.yml ##编辑kube-flannel.yml文件,将网络类型改为直接路由模

推荐文章

热门文章

相关标签