精华内容
下载资源
问答
  • Qt for Python 5.12发布下载,附PySide2和Shiboken2介绍
    2021-05-16 09:50:09

    Qt for Python 5.12(全称 Qt for Python for Qt 5.12) 发布下载了,这是一个没有 LTS 支持的版本,在终端中执行 pip install PySide2 命令可安装它(参考:在Ubuntu 18.04系统中安装pip并使用pip命令一文)。请注意,Qt for Python 与特定的 Qt 版本紧密绑定,但不会继承 Qt 5.12 中的 LTS(三年支持)标志。这意味着此版本从发布日开始支持一年。我们的未来目标是在 Qt for Python 基于的 Qt 版本的同时发布 Qt for Python。但是现在并没有做到这一点。以下为你介绍 PySide2 和 Shiboken2 及 Qt for Python 下步工作。

    d368e7cf3004492d3cf7e09658ec34e3.png

    PySide2 和 Shiboken2 介绍

    Qt for Python 5.12 版本包含两个模块。第一个模块是 PySide2 为大多数 Qt API 提供 Python 包装器,第二个模块是 Shiboken2 允许用户包装自己的 C ++ 库并使它们可用于 Python。在软件内部,PySide2 模块依赖于 Shiboken。

    删除技术预览(TP)标签意味着一定的兼容性保证。和 C ++ 的兼容性相比,此兼容性声明对于 Python 用户的 Qt 有所不同。它主要依赖于 Qt 的源兼容性保证,因为我们使用特定的语法来公开 Qt的 C ++ API。用 Qt for Python 5.12 编写的任何 Python 应用程序兼容于未来的新版本。在 Shiboken 方面,我们继续持有 TP 标签。

    Qt for Python 5.12目前支持在 **Python 2.7 和 3.5+** 环境下运行。

    附:Qt for Python 项目的下步工作

    初始制定了包括的内容如下:

    简化 PySide2 应用程序的部署。

    提供与其他 Python 模块更平滑的交互。

    支持嵌入式和移动等其他平台。

    相关链接

    相关主题

    更多相关内容
  • :fire: Qt公司已正式发布PySide2),现已提供官方轮子。 由于这个原因,我不再维护该存储库。 去拿官方的轮子! 姊妹项目 pyside2-linux(此项目) 下载独立车轮 包含内置的PySide2轮子。 这是如何运作的? ...
  • Pyside2简介pyside2是Qt for Python project,它提供了对完整qt 5.12+框架的访问。qt for python项目是在开放式环境中开发的,具有您所期望的所有功能从任何现代的...安装自从Technical Preview发布以来可以通过pi...

    Pyside2

    简介

    pyside2是

    Qt for Python project,

    它提供了对完整qt 5.12+框架的访问。

    qt for python项目是在开放式环境中开发的,具有您所期望的所有功能

    从任何现代的oss项目,比如git存储库中的所有代码和一个开放的

    设计过程。我们欢迎任何符合

    Qt Contribution Agreement。

    安装

    自从Technical Preview发布以来

    可以通过pip从qt的服务器安装

    以及PyPi:pip install PySide2

    依赖关系

    5.12后面的PySt2版本使用基于C++的解析器

    Clang。Clang库(C绑定),版本6.0或

    建筑要求更高。它的预构建版本可以从

    download.qt.io。

    解压存档文件后,将环境变量llvm_install_dir设置为

    指向包含部族目录include和lib的文件夹:7z x .../libclang-release_60-linux-Rhel7.2-gcc5.3-x86_64-clazy.7z

    export LLVM_INSTALL_DIR=$PWD/libclang

    在Windows上:7z x .../libclang-release_60-windows-vs2015_64-clazy.7z

    SET LLVM_INSTALL_DIR=%CD%\libclang

    从源头建设

    对于从头开始构建pyside2,请阅读

    getting started。

    此过程将包括获取代码:git clone https://code.qt.io/pyside/pyside-setup

    cd pyside-setup

    git branch --track 5.12 origin/5.12

    git checkout 5.12

    然后安装依赖项,并按照每个平台的说明进行操作。

    一个常见的构建命令如下:python setup.py install --qmake= --parallel=8 --build-tests

    您可以获得有关构建pyside的选项的更多信息

    在our wiki和石波肯。

    文档和错误

    如果您遇到任何问题,请在我们的

    JIRA tracker以下

    我们的guidelines。

    社区

    检查qt pyside,我们在freenode上的官方irc频道,

    或者通过我们的mailing list联系我们。

    欢迎加入QQ群-->: 979659372

    9ddc589a9bae9dd81334056da3504a2c.png

    推荐PyPI第三方库

    展开全文
  • 在界面工具中,PySide6功能强大,与Pycharm相结合,可以满足各种变态与正常的需求。 PySide6的界面目前为两种,一种是传统的QT Widgets,另一种是相对新颖的QML。 本文演示了PySide6 的安装、配置、以天气预报示例...

    使用Python开发图形界面的软件其实并不多,相对于GUI界面,可能Web方式的应用更受人欢迎。但基于GUI做一些小工具,还是很实用的。

    在界面工具中,PySide6功能强大,与Pycharm相结合,可以满足各种变态与正常的需求。
    PySide6的界面目前为两种,一种是传统的QT Widgets,另一种是相对新颖的QML。

    本文演示了PySide6 的安装、配置、以天气预报示例演示了开发流程,对期间碰到的问题进行了梳理和总结。
    环境信息是:Win10、PyCharm 2020.1、PySide6 6.2.2.1、PyInstaller 4.8、Python 3.7,基于QT Widgets设置图形界面。

    安装PySide6

    安装PySide6

    Qt是一个跨平台的C++图形界面应用程序框架
    它提供给开发者建立图形用户界面所需的功能,广泛用于开发GUI程序,也可用于开发非GUI程序。
    Qt很容易扩展,并且允许真正地组件编程。
    基本上,Qt同X Window上的Motif,Openwin,GTK等图形界面库以及Windows平台上的MFC、OWL、VCL、ATL是同类型的东西。

    • PySide6是来自于Qt for Python项目的官方Python模块,它提供了对完整Qt 6.0+框架的访问。
    • Qt Designer 拖拽式的界面设计工具:通过拖拽的方式放置控件,并实时查看控件效果进行快速UI设计
    • PyUIC:主要是把Qt Designer生成的.ui文件换成.py文件
    • PyRCC主要是把编写的.qrc资源文件换成.py文件
    pip install PySide6
    

    安装的是最新版:6.2.2.1,已经包含了Qt Designer、PyUIC、PyRCC工具

    PyCharm中配置External Tools

    在 PyCharm中的External Tools中,配置下图的三个工具。
    在这里插入图片描述

    配置QtDesigner

    • Name: QtDesigner
    • Program : D:\program\Anaconda3\Scripts\pyside6-designer.exe # 请根据实际修改
    • Working directory: $ProjectFileDir$
      在这里插入图片描述

    配置PyUIC

    • Name: PyUIC
    • Program : D:\program\Anaconda3\Scripts\pyside6-uic.exe # 请根据实际修改
    • Arguments:$FileName$ -o $FileNameWithoutExtension$.py
    • Working directory: $FileDir$
      在这里插入图片描述

    配置PyRCC

    • Name: PyRCC
    • Program : D:\program\Anaconda3\Scripts\pyside6-rcc.exe # 请根据实际修改
    • Arguments:$FileName$ -o $FileNameWithoutExtension$_rc.py
    • Working directory: $FileDir$
      在这里插入图片描述

    使用示例

    使用PySide6开发一个天气预报查询页面,通过选择广东不同的地市,查询不同地市的天气预报信息。

    代码结构如下:
    在这里插入图片描述

    使用QtDesigner进行界面设计

    整个画面的构成:

    • 左侧的“Widget Box”就是各种可以自由拖动的组件
    • 中间的“MainWindow – weather.ui”窗体就是画布
    • 右上方的”Object Inspector”可以查看当前ui的结构
    • 右侧中部的”Property Editor”可以设置当前选中组件的属性
    • 右下方的”Resource Browser”可以添加各种素材,比如图片,背景等等

    最终生成.ui文件(实质上是XML格式的文件),可直接使用,也可以通过PyUIC工具转换成.py文件。

    本示例用到的控件有Button, GroupBox, Label,ComboBox,TextEdit,同时定义了两个按钮searchBtn及clearBtn,分别用来查询及清空天气数据:

    针对按钮设置信号/槽,也可以不设置,生成python代码后在代码中添加。

    • 在Qt Designer右下角选择 信号/槽编辑器,点击+号新增
    • 分别选择searchBtn及clearBtn,选择信号 clicked(), 接收者 QtWeather 及槽【内置了一些常用的槽函数,如close,repaint,hide】,(槽函数这里不知道如何定义,后期在代码里再进行修改)

    设置完成后,保存为weather.ui文件。
    在这里插入图片描述
    在这里插入图片描述

    转换.ui文件为.py文件

    为了更好的自定义及修改上面的槽函数,可以选择weather.ui,然后右键打开External Tools – PyUIC,即可生成weather.py,实际运行命令如下:
    D:\program\Anaconda3\Scripts\pyside6-uic.exe weather.ui -o weather.py

    绑定槽函数

    设置两个按钮绑定的槽函数

    self.seachBtn.clicked.connect(QtWeather.queryWeather)
    self.clearBtn.clicked.connect(QtWeather.clearText)
    

    设置下拉列表内容

    详见weather.py代码
    将selectBox下拉列表选择设置为广东的21个地市,并且默认选择第三个。

    # -*- coding: utf-8 -*-
    ################################################################################
    ## Form generated from reading UI file 'weather.ui'
    ## Created by: Qt User Interface Compiler version 6.2.2
    ## WARNING! All changes made in this file will be lost when recompiling UI file!
    ################################################################################
    from PySide6.QtCore import (QCoreApplication, QMetaObject, QRect,
                                Qt)
    from PySide6.QtWidgets import (QComboBox, QGroupBox, QLabel,
                                   QMenuBar, QPushButton, QStatusBar, QTextEdit, QWidget)
    class Ui_QtWeather(object):
        def setupUi(self, QtWeather):
            if not QtWeather.objectName():
                QtWeather.setObjectName(u"QtWeather")
            QtWeather.setWindowModality(Qt.ApplicationModal)
            QtWeather.resize(360, 398)
            self.centralwidget = QWidget(QtWeather)
            self.centralwidget.setObjectName(u"centralwidget")
            self.groupBox = QGroupBox(self.centralwidget)
            self.groupBox.setObjectName(u"groupBox")
            self.groupBox.setGeometry(QRect(20, 20, 321, 301))
            self.cityLabel = QLabel(self.groupBox)
            self.cityLabel.setObjectName(u"cityLabel")
            self.cityLabel.setGeometry(QRect(20, 30, 31, 16))
            self.selectBox = QComboBox(self.groupBox)
            self.selectBox.setObjectName(u"selectBox")
            self.selectBox.setGeometry(QRect(60, 30, 231, 22))
            self.selectBox.setEditable(True)
            self.textEdit = QTextEdit(self.groupBox)
            self.textEdit.setObjectName(u"textEdit")
            self.textEdit.setGeometry(QRect(20, 70, 271, 211))
            self.clearBtn = QPushButton(self.centralwidget)
            self.clearBtn.setObjectName(u"clearBtn")
            self.clearBtn.setGeometry(QRect(30, 330, 75, 24))
            self.seachBtn = QPushButton(self.centralwidget)
            self.seachBtn.setObjectName(u"seachBtn")
            self.seachBtn.setGeometry(QRect(270, 330, 75, 24))
            QtWeather.setCentralWidget(self.centralwidget)
            self.menubar = QMenuBar(QtWeather)
            self.menubar.setObjectName(u"menubar")
            self.menubar.setGeometry(QRect(0, 0, 360, 22))
            QtWeather.setMenuBar(self.menubar)
            self.statusbar = QStatusBar(QtWeather)
            self.statusbar.setObjectName(u"statusbar")
            QtWeather.setStatusBar(self.statusbar)
    
            self.retranslateUi(QtWeather)
    
            self.seachBtn.clicked.connect(QtWeather.queryWeather)
            self.clearBtn.clicked.connect(QtWeather.clearText)
    
            QMetaObject.connectSlotsByName(QtWeather)
        # setupUi
    
        def retranslateUi(self, QtWeather):
            _translate = QCoreApplication.translate
            QtWeather.setWindowTitle(_translate("QtWeather", u"MainWindow", None))
            self.groupBox.setTitle(_translate("QtWeather", u"城市天气预报", None))
            self.cityLabel.setText(_translate("QtWeather", u"城市", None))
            self.clearBtn.setText(_translate("QtWeather", u"清空", None))
            self.seachBtn.setText(_translate("QtWeather", u"查询", None))
    
            self.selectBox.addItem("广州")
            self.selectBox.addItem("韶关")
            self.selectBox.addItem("深圳")
            self.selectBox.addItem("珠海")
            self.selectBox.addItem("汕头")
            self.selectBox.addItem("佛山")
            self.selectBox.addItem("江门")
            self.selectBox.addItem("湛江")
            self.selectBox.addItem("茂名")
            self.selectBox.addItem("肇庆")
            self.selectBox.addItem("惠州")
            self.selectBox.addItem("梅州")
            self.selectBox.addItem("汕尾")
            self.selectBox.addItem("河源")
            self.selectBox.addItem("阳江")
            self.selectBox.addItem("清远")
            self.selectBox.addItem("东莞")
            self.selectBox.addItem("中山")
            self.selectBox.addItem("潮州")
            self.selectBox.addItem("揭阳")
            self.selectBox.addItem("云浮")
            
            #设置默认值
            self.selectBox.setCurrentIndex(3)
            self.selectBox.currentText()
        # retranslateUi
    

    编写应用业务逻辑

    在MainWindow中调用界面类Ui_QtWeather,然后在其中添加查询天气的业务逻辑代码,这样就做到了界面显示和业务逻辑的分离。

    新增myapp.py文件, 在MainWindow类中定义两个槽函数queryWeather()和clearText(),以便在界面文件weather.ui中定义的两个按钮(searchBtn 和clearBtn) 触发clicked 信号与这两个槽函数进行绑定。

    Application组件讲解

    • QApplication():每个GUI都必须包含一个QApplication,argv表示获取命令行参数。
    • QMainWindow():类似一个容器(窗口)
      • QMainWindow类提供一个带有菜单条,工具条和一个状态条的主应用程序窗口。主窗口通常提供一个大的中央窗口部件,以及周围菜单,工具条,和一个状态栏。
      • 用来包含按钮、文本、输入框等widgets。arg标识可以获取命令行执行时的参数。
    • setGeometry是用来定义 MainWindow() 窗口的尺寸, 语法:setGeometry(x, y, width, height ),其中x,y为屏幕上的坐标点。
    • show():用来显示窗口
    • exit(app.exec()):设置窗口一直运行,直到使用关闭按钮进行关闭
    • QWidget类是所有用户界面对象的基类,窗口部件是用户界面的一个基本单元,它从窗口系统接收鼠标,键盘和其他消息,并在屏幕上绘制自己。一个窗口部件可以被他的父窗口或者是其他窗口挡住一部分。
    • QDialog类是对话框窗口的基类,对话框窗口主要用于短期任务和用户进行短期通讯的顶级窗口,QDialog可以是模态对话框或者是非模态对话框。QDialog支持扩展并带有返回值,他们可以带有默认值
    import sys
    import requests
    from PySide6.QtWidgets import QApplication, QMainWindow
    from weather import Ui_QtWeather
    
    class MainWindow(QMainWindow):
        def __init__(self):
            super().__init__()
            self.ui = Ui_QtWeather()
            self.ui.setupUi(self)
            self.cityDict = {
                "广州": "440100",
                "韶关": "440200",
                "深圳": "440300",
                "珠海": "440400",
                "汕头": "440500",
                "佛山": "440600",
                "江门": "440700",
                "湛江": "440800",
                "茂名": "440900",
                "肇庆": "441200",
                "惠州": "441300",
                "梅州": "441400",
                "汕尾": "441500",
                "河源": "441600",
                "阳江": "441700",
                "清远": "441800",
                "东莞": "441900",
                "中山": "442000",
                "潮州": "445100",
                "揭阳": "445200",
                "云浮": "445300"
            }
    
        def queryWeather(self):
            cityName = self.ui.selectBox.currentText()
            cityCode = self.getCode(cityName)
    
            r = requests.get(
                "https://restapi.amap.com/v3/weather/weatherInfo?key=f4fd5b287b6d7d51a3c60fee24e42002&city={}".format(cityCode))
    
            if r.status_code == 200:
                data = r.json()['lives'][0]
                weatherMsg = '城市:{}\n天气:{}\n温度:{}\n风向:{}\n风力:{}\n湿度:{}\n发布时间:{}\n'.format(
                    data['city'],
                    data['weather'],
                    data['temperature'],
                    data['winddirection'],
                    data['windpower'],
                    data['humidity'],
                    data['reporttime'],
                )
            else:
                weatherMsg = '天气查询失败,请稍后再试!'
            self.ui.textEdit.setText(weatherMsg)
    
        def getCode(self, cityName):
            return self.cityDict.get(cityName, '广州')
    
        def clearText(self):
            self.ui.textEdit.clear()
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
    
        window = MainWindow()
        window.setGeometry(150, 150, 360, 398)
        window.setWindowTitle("QT 简单示例教程")
        window.show()
    
        sys.exit(app.exec())
    

    运行效果

    在这里插入图片描述

    将代码打包成exe文件

    将.py文件打包成可执行的exe在Python中称为freezing,常用的工具有:PyInstaller, py2exe, fbs等。

    • py2exe:软件更新已经不活跃,因此也就略过。
    • pyinstaller:明确支持win8、win10、理论上支持win7,,支持apple Macos, linux。pyinsaller可以打包成文件夹形式内含exe入口执行文件的形式,也可以是一个单独的exe文件。
    • fbs:基于PyInstaller,使用起来更加方便,但开源版本只支持python 3.6/3.7

    本文使用pyinstaller打包
    打包后会在项目目录下生成dist / myapp 目录,在此目录中包含一个myapp.exe文件,点击可运行。

    #安装,版本是4.8
    pip install pyinstaller
    
    #打包
    pyinstaller E:\pycodes\qt-test\myapp.py
    

    附录

    错误解决

    PyCharm中运行报Qt platform plugin could be initialized

    运行myapp.py时,报错:This application failed to start because not Qt platform plugin could be initialized.Reinstalling the application may fix this problem.
    解决方案有如下2种:

    • 设置环境变量: QT_QPA_PLATFORM_PLUGIN_PATH = D:\program\Anaconda3\Lib\site-packages\PySide6\plugins\platforms
    • 在程序初始部分添加如下代码:
    dirname = os.path.dirname(PySide6.__file__)
    plugin_path = os.path.join(dirname, 'plugins', 'platforms')
    print(plugin_path)
    os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = plugin_path
    

    PySide6程序打包后无法运行 no Qt platform plugin could be initialized

    使用Pyinstaller打包之后的可执行文件无法运行,显示的报错信息:This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
    在这里插入图片描述

    • 方案1: 经过与PySide 2打包后的文件进行对比,发现Pyinstaller打包的文件目录里缺少了Qt运行所需的一些文件,如下:

      • plugins
      • translations
      • qt.conf

      在哪里找到PySide 6需要的这些文件呢? 步骤如下:

      • 使用下面的命令查询PySide 6的安装位置(Location)pip show PySide6
      • 进入到安装目录,再进入子目录(PySide6)
      • 找到并复制 plugins、translations、qt.conf 打包目录的PySide6下即可。
    • 方案2
      将打包命令修改为:
      pyinstaller myapp.py --noconsole --hidden-import PySide6.QtXml

      参数说明

      • -w, --windowed, --noconsole
        Windows and Mac OS X: do not provide a console window for standard i/o.
        On Mac OS this also triggers building a Mac OS .app bundle.
        On Windows this option is automatically set if the first script is a ‘.pyw’ file.
        This option is ignored on *NIX systems.
      • --hidden-import MODULENAME, --hiddenimport MODULENAME
        Name an import not visible in the code of the
        script(s). This option can be used multiple times.
      • PySide6.QtXml 包含模块类的定义
    展开全文
  • pyside2的入门教程

    千次阅读 2021-12-08 23:52:18
    文章目录界面设计界面布局常用控件从一个窗口跳转到另外一个窗口发布程序1. 打包2. 程序图标3.应用程序图标简单封装一个界面的demo 安装pyside2 pip install pyside2 -i https://pypi.douban.com/simple/ 界面...


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

    • 代码路径
      github


    界面设计

    界面设计我们可以用QT界面生成器 Qt Designer ,使用方法有二种:

    1. 动态加载UI文件
      self.ui = QUiLoader().load('untitled.ui')
      
    2. 转化UI文件为Python代码
      pyside2-uic main.ui > ui_main.py
      

    Windows下,运行 Python安装目录下 Scripts\pyside2-designer.exe 这个可执行文件

    • 那么我们该使用哪种方式比较好呢?动态加载还是转化为Python代码?
      通常采用动态加载比较方便,因为改动界面后,不需要转化,直接运行,特别方便。
      但是,如果 你的程序里面有非qt designer提供的控件, 这时候,需要在代码里面加上一些额外的声明,而且 可能还会有奇怪的问题。往往就 要采用 转化Python代码的方法。

    • 我的UI编辑路径是:
      C:\Users\cds.conda\envs\pyside2_qt\Scripts
      在这里插入图片描述

    界面布局

    有四种常用的布局方式

    1. QHBoxLayout 水平布局
      在这里插入图片描述
    2. QVBoxLayout 垂直布局
      在这里插入图片描述
    3. QGridLayout 表格布局
      在这里插入图片描述
    4. QFormLayout 表单布局
      在这里插入图片描述

    常用控件

    从一个窗口跳转到另外一个窗口

    如果经常要在两个窗口来回跳转,可以使用 hide() 方法 隐藏窗口, 而不是 closes() 方法关闭窗口。 这样还有一个好处:被隐藏的窗口再次显示时,原来的操作内容还保存着,不会消失。

    发布程序

    1. 打包

    我们可以使用 PyInstaller 来制作独立可执行程序。

    
    pyinstaller httpclient.py --noconsole --hidden-import PySide2.QtXml
    
    • --noconsole指定不要命令行窗口,否则我们的程序运行的时候,还会多一个黑窗口。 但是我建议大家可以先去掉这个参数,等确定运行成功后,再加上参数重新制作exe。因为这个黑窗口可以显示出程序的报错,这样我们容易找到问题的线索。
    • --hidden-import PySide2.QtXml参数是因为这个 QtXml库是动态导入,PyInstaller没法分析出来,需要我们告诉它,

    最后,别忘了,把程序所需要的ui文件拷贝到打包目录中。

    因为PyInstaller只能分析出需要哪些代码文件。 而你的程序动态打开的资源文件,比如 图片、excel、ui这些,它是不会帮你打包的。

    我们的 示例代码 需要 从 httpclient.ui 中加载界面,手动拷贝到 dist/httpclient 目录中。

    然后,再双击运行 httpclient.exe ,完美!

    2. 程序图标

    通过如下代码,我们可以把一个png图片文件作为 程序窗口图标。

    
    from PySide2.QtGui import  QIcon
    
    app = QApplication([])
    # 加载 icon
    app.setWindowIcon(QIcon('logo.png'))
    

    注意:这些图标png文件,在使用PyInstaller创建可执行程序时,也要拷贝到程序所在目录。否则可执行程序运行后不会显示图标。

    3.应用程序图标

    应用程序图标是放在可执行程序里面的资源。

    可以在PyInstaller创建可执行程序时,通过参数 --icon=“logo.ico” 指定。

    比如

    pyinstaller httpclient.py --noconsole --hidden-import PySide2.QtXml --icon="logo.ico"
    

    注意参数一定是存在的ico文件,不能是png等图片文件。

    如果你只有png文件,可以通过在线的png转ico文件网站,生成ico,比如下面两个网站

    简单封装一个界面的demo

    在这里插入图片描述

    
    from PySide2.QtWidgets import QApplication, QMainWindow, QPushButton,  QPlainTextEdit,QMessageBox
    
    class Stats():
        def __init__(self):
            self.window = QMainWindow()
            self.window.resize(500, 400)
            self.window.move(300, 300)
            self.window.setWindowTitle('薪资统计')
    
            self.textEdit = QPlainTextEdit(self.window)
            self.textEdit.setPlaceholderText("请输入薪资表")
            self.textEdit.move(10, 25)
            self.textEdit.resize(300, 350)
    
            self.button = QPushButton('统计', self.window)
            self.button.move(380, 80)
    
            self.button.clicked.connect(self.handleCalc)
    
    
        def handleCalc(self):
            info = self.textEdit.toPlainText()
    
            # 薪资20000 以上 和 以下 的人员名单
            salary_above_20k = ''
            salary_below_20k = ''
            for line in info.splitlines():
                if not line.strip():
                    continue
                parts = line.split(' ')
                # 去掉列表中的空字符串内容
                parts = [p for p in parts if p]
                name,salary,age = parts
                if int(salary) >= 20000:
                    salary_above_20k += name + '\n'
                else:
                    salary_below_20k += name + '\n'
    
            QMessageBox.about(self.window,
                        '统计结果',
                        f'''薪资20000 以上的有:\n{salary_above_20k}
                        \n薪资20000 以下的有:\n{salary_below_20k}'''
                        )
    
    app = QApplication([])
    stats = Stats()
    stats.window.show()
    app.exec_()
    
    展开全文
  • 我想在我的Windows10,Python3.8版上安装PySide2,尽管还没有为它发布控制盘。在当然,我首先尝试了pip install --python-version 3.7命令,看看是否只获取所有内容,但对于Python之前的版本,就可以了。没用。在...
  • 另外,如果想要在Linux上跨平台运行,可以选用Qt; 如果想要更加丰富好看的数据显示界面,可以选用Labview开发; 2、Android上位机(APP) 在Android操作系统上,主要采用Java语言,使用WIFI或者蓝牙基于TCP/IP协议...
  • 但是按照上次的打包可执行文件方法进行Linux可执行文件制作时, 报错:ImportError: could not import module ‘PySide2.QtXml’ 解决办法 找到我们的.py文件,在该文件下打开终端,执行语句:pyinstaller carmain....
  • Python3快速入门(十八)——PyInstaller打包发布 一、PyInstaller简介 1、PyInstaller简介 PyInstaller是一个跨平台的Python应用打包工具,支持 Windows/Linux/MacOS三大主流平台,能够把 Python 脚本及其所在的 ...
  • Dynamsoft Barcode Reader SDK一款多功能的条码读取控件,只需要几行代码就可以将条码读取功能嵌入到Web或桌面应用程序。...如果要使用Python和Qt构建跨平台的GUI应用程序,则可以使用PyQt或PySide
  • PyInstaller是一个跨平台的Python应用打包工具,支持 Windows/Linux/MacOS三大主流平台,能够把 Python 脚本及其所在的 Python 解释器打包成可执行文件,从而允许最终用户在无需安装 Python 的情况下执行应用程序。...
  • Qt 5.12 已经发布下载,这是一个 LTS 长期支持版本,使用 Qt 5.12 的用户将获得三年的技术支持。下面将为你介绍 Qt 5.12 的新功能及更新内容,同时,对比上一个 LTS 版本 5.9.7 ,Qt 5.12 修复了超过 2000 个 bug。...
  • 跨平台是最近几年非常火的主题,因为现在的各种平台简直太多了。Windows、macOS、Linux、Android、iOS、Web、小程序、IoT等等。以后还可能会不断增加。没人希望挨个为...
  • 你也可以参考在Linux/Unix中安装FreeCAD一文。安装方法请先到深度Deepin系统的应用商店中安装freecad,在图形图像分类里面,如下图所示:点击FreeCAD的图标进去就可以进行安装了,然后再进行assembly2...
  • 安装Python打包工具pip ...支持在 Windows, Mac OS X, Linux 系统上打包出 可执行程序。打包将之前写的Qt界面程序打包,进入要打包的py文件所在目录,在命令行里执行下面命令pyinstaller stats.py --noconsole --...
  • 签名套件插件(v1.1.1) ...Linux 最低版本 此插件需要以下最低版本的Binary Ninja: 1997年 必需的依存关系 此插件需要以下依赖项: 点-Flatbuffers,PySide2 执照 该插件是根据MIT许可发布的。 元数据版本 2个
  • 4.6 (2021-10-29) 特征 添加对 Python 3.10 的支持。...在onedirmode中生成外部清单文件的旧行为可以使用--no-embed-manifest命令行开关重新启用,或通过.spec 文件中的 embed_manifest=False参数 to重新启用
  • awesome-python(python集合框架)

    千次阅读 2021-08-17 13:19:20
    dh-virtualenv:构建并将 virtualenv 虚拟环境作为一个 Debian 包来发布。 Nuitka:将脚本、模块、包编译成可执行文件或扩展模块。 py2app:将 Python 脚本变为独立软件包(Mac OS X)。 py2exe:将 Python 脚本...
  • Python 图形界面框架 PyQt5 使用指南!

    千次阅读 2021-12-04 00:33:27
    Kivy[8]:主要针对多点触控程序,智能手机平板等,也可以在没有触屏功能的系统上,全平台支持(Windows, Linux, Mac OS X, Android and iOS.)使用Python和cython编写,中文支持差,需要自己下载中文库并且制定路径...
  • 1000+常用Python库一览

    2021-03-27 00:13:22
    文本处理、文件处理、图像处理、游戏和多媒体、大数据和科学计算、人工智能和机器学习、系统与命令行、数据库、网络、web框架、安全、封装、代码调试 文本处理 Chardet字符编码探测器,可以自动检测文本、网页、xml...
  • 有没有办法在Android上运行Python?我们正在开发S60版本,这个平台有一个很好的Python API ..但是,在Android上没有关于Python的正式官方,但是由于Jython存在,有没有办法让蛇和机器人一起...Kivy可以Linux,W...
  • 如何运行 后续计划为linux/mac/windows三个平台发布可执行程序 现在还只能在python环境下运行pip install -r requirements.txt python app.py复制代码 如果通过requirements.txt安装碰到问题,也可以直接运行python ...
  • PySide, LGPL协议下的PyQT

    2010-10-08 19:13:00
    PySide是为Python提供Qt绑定的一款开源软件项目 ,类似于PyQt。 Nokia在购买QT后将之纳入LGPL协议的管理之下,同时研究了Python下的Qt绑定,希望PyQt能够也使用该协议。Nokia与PyQt的开发公司--Riverbank公司进行了...
  • 简介 ...也可以访问Qt项目域名:http://qt-project.org/  Qt本身支持众多操作系统。从通用操作系统Linux、Windows,到手机系统Android、iOS、WinPhone,嵌入式系统支持QNX、VxWorks,应用非常广泛。  基于Qt...
  • 大多数Linux发行版以及NetBSD、OpenBSD和Mac OS X都集成了Python,可以在终端下直接运行Python。有一些Linux发行版的安装器使用Python语言编写,比如Ubuntu的Ubiquity安装器,Red Hat Linux和Fedora的Anaconda安装器...
  • 简单地说,你可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。这是为什么Python如此优秀的原因之一——它是由一群希望看到一个...
  • 一些Qt第三方语言绑定库

    千次阅读 2019-06-05 07:18:48
    PySide2模块的第一个官方版本现在已经发布了!目前最新支持Qt 5.12版本于2018年12月正式发布。 地址 : https://www.qt.io/qt-for-python 2.第三方语言绑定库 序号 语言绑定库 1 ...
  • pysider安装问题与解决

    2020-02-05 16:43:07
    wsgidav发布的3.x版本目前仍然是测试版,相对于2.x(例如2.4.1)更改了一些用法,上面报错的两个部分就是的。pyspider的3.0及以上版本在安装时,会默认安装wsgidav的3.x版(具体的版本可能会有偏差)。其实上面错误...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 946
精华内容 378
关键字:

pyside可以发布linux吗

友情链接: Simulations.rar