首页 > 编程语言 >(一)Qt与Python—PySide的简介及安装

(一)Qt与Python—PySide的简介及安装

时间:2023-08-18 12:55:06浏览次数:51  
标签:__ Qt PySide Python self PyQt PySide6

目录

1.Pyside的简介

PySide(在本文中指代PySide2和PySide6) 是一个Python的图形化界面(GUI)库,由C++版的Qt开发而来,在用法上基本与C++版没有特别大的差异。PySide 是一个python绑定的跨平台图形化界面 Qt库。
​ PySide是由诺基亚公司开发的,简单来说就是其Qt库的Python移植(原先是C++的)。目前,支持Python的Qt库有两个PyQt和PySide,PySide是PyQt 的兄弟,常被网友戏称为诺基亚的亲儿子。PySide是一个免费的软件,与PyQt不同之处在于使用了LGPL,允许PySide免费的开发商业软件。
​ PySide和PyQt的关系,前者是Qt公司的产品,后者是第三方公司的产品,二者用法基本相同。不过,在使用协议上却有很大差别,PySide可以在LGPL协议下使用,PyQt则在GPL协议下使用。
​ PySide的主要对手是PyQt。PyQt出现得比PySide早,但是PySide血统更纯正一些(毕竟是亲儿子)。但是具体应用两者差不多,因为目前Qt的IDE也没有把Python弄进去,要实现同样功能两者要进行的操作大同小异。PyQt个人应用免费,但是商业应用要收钱,相比下PySide的个人和商业双免费的策略更让人放心一些。
​ PySide为我们提供了两种开发界面的方式,一种是QtWidget,早期比较常见;另一种叫QML,是一种新型的开发方式,这也是Qt正在努力推广的开发方式。

2.pyside的安装

​ 首先在Anaconda中,安装Pysidde,其各种版本的正确搭配:

pyside2:Qt5,Python2.7/Python>=3.5

pyside6: Qt6, Python>=3.6

pip install PySide6

​ 其中 pyside 安装包大概112M,可能需要等待安装几分钟,安装完成后:有的朋友,网络比较慢,可以指定国内的安装源,下载安装。比如,使用豆瓣源下载安装:

pip install pyside2 -i https://pypi.douban.com/simple/

​ 下一步验证安装,ananconda,下输入如下的代码以检查:

import PySide6.QtCore
 
# 打印PySide6版本
print(PySide6.__version__)
 
# 打印用于编译PySide6的Qt版本
print(PySide6.QtCore.__version__)

3.pyside的Hello world程序

import random
import sys

from PySide6.QtCore import Qt, Slot
from PySide6.QtWidgets import (QApplication, QLabel, QPushButton,
                               QVBoxLayout, QWidget)
from __feature__ import snake_case, true_property


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

        self.hello = [
            "Hallo Welt",
            "你好,世界",
            "Hei maailma",
            "Hola Mundo",
        ]

        self.button = QPushButton("Click me!")
        self.message = QLabel("Hello World")
        self.message.alignment = Qt.AlignCenter

        self.layout = QVBoxLayout(self)
        self.layout.add_widget(self.message)
        self.layout.add_widget(self.button)

        # Connecting the signal
        self.button.clicked.connect(self.magic)

    @Slot()
    def magic(self):
        self.message.text = random.choice(self.hello)


if __name__ == "__main__":
    app = QApplication(sys.argv)

    widget = MyWidget()
    widget.show()

    sys.exit(app.exec_())

其运行结果如下:

4.参考文献及网站连接

https://www.byhy.net/tut/py/gui/qt_01/
https://doc.qt.io/qtforpython-6/gettingstarted/porting_from2.html
https://www.qt.io/qt-for-python
https://blog.csdn.net/qq_41185868/article/details/126895643

标签:__,Qt,PySide,Python,self,PyQt,PySide6
From: https://www.cnblogs.com/GeophysicsWorker/p/17640200.html

相关文章

  • python初阶语法
    python基础语法长文警告!!!本文适合初学py的小白阅读(根据需要进行跳转)。输出函数print()#输出数字print(98.5)#输出字符串print("Hello,clovershrub")print('hello,world')#输出表达式print(3+1)#将数据输出文件中,注意点,1.所指定的盘存在,2.使用file=fpfp=open('D:......
  • Python 矢量数据库和矢量索引:构建 LLM 应用程序
    推荐:使用NSDT场景编辑器助你快速搭建可二次编辑的3D应用场景由于使用其硬件创建的生成式AI应用程序,Nvidia经历了显着的增长。另一项软件创新,矢量数据库,也正在乘着生成式人工智能的浪潮。开发人员正在向量数据库上用Python构建AI驱动的应用程序。通过将数据编码为向量,他们可以利......
  • Python字符串定义的三种方法!
    字符串是Python编程语言中的基本数据类型,也是Python编程中非常重要的数据类型之一。在Python中,我们可以通过三种不同的方式来定义字符串,分别是:单引号、双引号、三引号,接下来是具体的内容介绍。1、使用单引号在Python中,使用单引号来定义字符串是最基本的方式。单引号用......
  • bad_python
      对着正确的pyc文件在010把题目文件的前缀改掉  ......
  • Python如何下载wheel包
    安装wheelpipinstallwheel-ihttps://pypi.douban.com/simple下载pipwheel-ihttps://pypi.douban.com/simpleflask批量下载requirements.txtFlask==2.0.1Flask-Cors==3.0.10flask-restx==0.5.1SQLAlchemy==1.4.22pipwheel-rrequirements.txt......
  • Python 关于字典嵌套字典通过正则筛选关键字
    1、@classmethoddefget_dict_value(cls,in_dict,target_key,results=[],not_d=True):"""in_dict:字典嵌套字典内容target_key:需要筛选的valueresults:筛选后返回列表data_list:通过正则筛选需要的内容,return......
  • Python字符串的三种定义方式
    一、为什么有多种定义方式我们在刚接触python字符串的时候,可能都只知道用双引号来定义(''),但如果我们要定义的字符串中包含了双引号,那么python还能识别并输出出来吗?显然是不能的,那么如何解决这个问题呢?很简单,如果语句中包含双引号,那么我们用单引号就可以区分开了。二、三种定义方......
  • Python学习之十七_django的入门
    前言Python学习了一周,慢慢总结摸索.自己还是有多不会的地方.感慨这些年浪费的时间.所有的时间都是选择大于努力.努力最多感动自己.生活是需要的是正确的选择.平凡的实在人太难在一个固化的社会生存.共勉.安装因为安装的是社区版.所以与专业版不太一样.这次学习主......
  • Python optparse模块
    #!/usr/bin/python3.8#-*-coding:utf-8-*-#__author__='QiushiHuang'importoptparse#sys.argv的功能类似#pythonftp_client.py-h192.168.22.33-p8091#user:#password#https://www.cnblogs.com/xiugeng/p/8821302.html#optparse不再更新,使用......
  • QtWebChannel和JavaScript进行通信(简单理解)
    说明在使用Qt(C++)和JavaScript之间实现通信时,通常会使用一些模块和技术来使两者能够交互和传递数据。这种通信通常用于在Qt应用程序中嵌入Web内容,或者在Web页面中嵌入Qt应用程序。以下是一些常用的模块和技术,以及它们的作用QtWebEngine模块:作用:QtWebEngine是Qt中的Web引擎,允......