PySide使用QVariant

12 篇文章 1 订阅

参考:
https://stackoverflow.com/questions/64631653/pyside-2-qvariantmap-signal-qt5-15-qt5-12

之前在Python这边用Qt的话,用的是PyQt。但是后来看到一些资料说PyQt是不能用于商业用途的,所以需要改成用PySide。
PySide和PyQt的用法大部分一样,但是有些语法不一样。这里给出个例子,简单介绍Signal、Slot、QVariant的使用:

from PySide2.QtCore import QObject, Slot, Signal

class RootComObj(QObject):
    def __init__(self):
        super().__init__()

    # 用来发送信息到C++那边去,主要是告知此时的状态
    serverToClient = Signal("QVariant")

    # 这个是供c++那边直接调用的槽函数,可以用来设置参数,也可以通过返回值读取参数。
    # 这里只是提供基础的数据通讯,复杂的通讯可以在这个基础上实现自己的封装
    # The slot exposed to a remote client.
    @Slot("QVariant", result="QVariant")
    def clientToServer(self, cmd):
        print("c to s:", cmd)
        return cmd

有时候,我们只是要使用无界面程序。对于这些无界面的程序,要使用QCoreApplication,而不要用QApplication,因为使用QApplication的话,需要调用ui渲染引擎(xcb、linuxFB等)。

from PySide2.QtCore import  QCoreApplication
# from PySide2.QtWidgets import QApplication

def main():
    app = QCoreApplication(sys.argv)
    ...

假如需要使用QApplication的话,可以这样:
https://blog.csdn.net/qq_41976422/article/details/108242662

import sys,os
import PySide2

dirname = os.path.dirname(PySide2.__file__)
plugin_path = os.path.join(dirname, 'plugins', 'platforms')
os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = plugin_path
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值