python qt5 常用

QT5中如何设置让窗口根据屏幕比例显示设置?

python 复制代码
desktop = QDesktopWidget().screenGeometry()
self.resize(int(desktop.width() * 0.3), int(desktop.height()*0.5))

QT5中关于背景穿透问题的处理方式?

场景如下:我们在开发的时候,通常会给窗口一个主题背景色或者图片。但是由于QT的组件具有继承关系,就会出现最底层的主窗口背景会在所有的后续子组件中显示。这很明显不是我们想要的。

目前我的处理方式是每个组件添加透明色来解决,主题色统一的问题:

python 复制代码
self.name_txt.setStyleSheet("background:transparent;")

如果你有更好的解决方案,欢迎留言交流。

QT5中信号的使用?

在QT开发中,这是一个很常用的场景。

适用信号通讯一般需要定义信号、接收信号、发送信号这几步:

定义信号:

python 复制代码
receive_main_msg = pyqtSignal(dict)

接收信号:通常都是在你定义的接收函数里边

python 复制代码
# 给信号对象绑定一个接收方法
self.receive_main_msg.connect(self.receiveMainData)

发送信号:QT中的发送信号其实就是在其他引用对象中调用信号对象发送。我都不知道这个跟直接掉方法有啥区别。我感觉是没区别。

python 复制代码
self.pro.receive_main_msg.emit(msg)

QT中子线程的使用?

这个使用也是挺重要的。不然你在处理数据时如果是阻塞的话,窗口肯定会卡的不要不要的。创立线程的方式也很简单:

python 复制代码
 self.backthred = BackendTask(self)
 # 设置为守护线程,主线程关闭守护线程也会跟着关闭
 self.backthred.daemon = True
 self.backthred.start()

# 创建线程
class BackendTask(QThread):
    def __init__(self,main):
        super().__init__()

    def run(self):
        # 根据业务决定是否要让线程一直存在
        while True:
            try:
                # 业务
            except Exception as e:
                print(f"backend task thread err {e}")

先到这里吧,后面有了会继续更新。

相关推荐
Knight_AL10 分钟前
用 JOL 验证 synchronized 的锁升级过程(偏向锁 → 轻量级锁 → 重量级锁)
开发语言·jvm·c#
啊阿狸不会拉杆35 分钟前
《数字图像处理》第 4 章 - 频域滤波
开发语言·python·数字信号处理·数字图像处理·频率域滤波
江沉晚呤时1 小时前
从零实现 C# 插件系统:轻松扩展应用功能
java·开发语言·microsoft·c#
Knight_AL1 小时前
Java 多态详解:概念、实现机制与实践应用
java·开发语言
Omigeq1 小时前
1.2.1 - 图搜索算法(以A*为例) - Python运动规划库教程(Python Motion Planning)
开发语言·python·机器人·图搜索算法
资深流水灯工程师1 小时前
基于Python的Qt开发之Pyside6 串口接收数据被分割的解决方案
开发语言·python·qt
没有bug.的程序员1 小时前
Java 并发容器深度剖析:ConcurrentHashMap 源码解析与性能优化
java·开发语言·性能优化·并发·源码解析·并发容器
量子炒饭大师2 小时前
【C++入门】零域终端的虚空指针协议——【nullptr】还在为编译器给NULL匹配为int而头疼?nullptr给予你全新的字面量!
开发语言·c++·nullptr
edisao2 小时前
一。星舰到底改变了什么?
大数据·开发语言·人工智能·科技·php
阿豪只会阿巴2 小时前
【多喝热水系列】从零开始的ROS2之旅——Day10 话题的订阅与发布1:Python
开发语言·c++·python·ubuntu·ros2