带有圆形图像的 QLabel

2024-03-11

我想在 PyQt5/PySide2 应用程序中显示圆形图像。

下面是我尝试过的代码。

self.statusWidget = QLabel()
img = QImage(":/image.jpg").scaled(49, 49, Qt.IgnoreAspectRatio, Qt.SmoothTransformation)
self.statusWidget.setPixmap(QPixmap.fromImage(img))
self.statusWidget.setStyleSheet("border-radius:20px")

我得到以下输出。

我想要像下面这样的 Qlabel。


用户头像 QLabel

制作圆形头像的最佳方法

该方法将QPainter的setClipPath方法与QPainterPath结合使用 裁剪图像。

import sys
from PyQt5.QtCore    import Qt
from PyQt5.QtGui     import QPixmap, QPainter, QPainterPath
from PyQt5.QtWidgets import QLabel, QWidget, QHBoxLayout, QApplication

class Label(QLabel):
    def __init__(self, *args, antialiasing=True, **kwargs):
        super(Label, self).__init__(*args, **kwargs)
        self.Antialiasing = antialiasing
        self.setMaximumSize(50, 50)
        self.setMinimumSize(50, 50)
        self.radius = 25 

        self.target = QPixmap(self.size())  
        self.target.fill(Qt.transparent)   

        p = QPixmap("E:/_Qt/img/qt-logo.png").scaled(  
            50, 50, Qt.KeepAspectRatioByExpanding, Qt.SmoothTransformation)

        painter = QPainter(self.target)
        if self.Antialiasing:
            painter.setRenderHint(QPainter.Antialiasing, True)
            painter.setRenderHint(QPainter.HighQualityAntialiasing, True)
            painter.setRenderHint(QPainter.SmoothPixmapTransform, True)

        path = QPainterPath()
        path.addRoundedRect(
            0, 0, self.width(), self.height(), self.radius, self.radius)

        painter.setClipPath(path)
        painter.drawPixmap(0, 0, p)
        self.setPixmap(self.target)

class Window(QWidget):
    def __init__(self, *args, **kwargs):
        super(Window, self).__init__(*args, **kwargs)
        layout = QHBoxLayout(self)
        layout.addWidget(Label(self))
        layout.addWidget(Label(self, antialiasing=False))  
        self.setStyleSheet("background: blue;")           

if __name__ == "__main__":
    app = QApplication(sys.argv)
    w = Window()
    w.show()
    sys.exit(app.exec_())
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带有圆形图像的 QLabel 的相关文章

  • Lighttpd 和 cgi python

    我正在尝试通过 lighttpd 执行一些 python 脚本 但是当我尝试运行它时 我只得到一个要求我下载的空白文件 lighttpd conf server modules mod access mod alias mod access
  • python:查找围绕某个 GPS 位置的圆的 GPS 坐标的优雅方法

    我有一组以十进制表示的 GPS 坐标 并且我正在寻找一种方法来查找每个位置周围半径可变的圆中的坐标 这是一个例子 http green and energy com downloads test circle html我需要什么 这是一个圆
  • 中断 Select 以添加另一个要在 Python 中监视的套接字

    我正在 Windows XP 应用程序中使用 TCP 实现点对点 IPC 我正在使用select and socketPython 2 6 6 中的模块 我有三个 TCP 线程 一个读取线程通常会阻塞select 一个通常等待事件的写入线程
  • Python 中的哈希映射

    我想用Python实现HashMap 我想请求用户输入 根据他的输入 我从 HashMap 中检索一些信息 如果用户输入HashMap的某个键 我想检索相应的值 如何在 Python 中实现此功能 HashMap
  • Python 中的舍入浮点问题

    我遇到了 np round np around 的问题 它没有正确舍入 我无法包含代码 因为当我手动设置值 而不是使用我的数据 时 返回有效 但这是输出 In 177 a Out 177 0 0099999998 In 178 np rou
  • 用枢轴点拟合曲线 Python

    我有下面的图 我想用 2 条线来拟合它 使用 python 我设法适应上半部分 def func x a b x np array x return a x b popt pcov curve fit func up x up y 我想用另
  • 删除flask中的一对一关系

    我目前正在使用 Flask 开发一个应用程序 并且在删除一对一关系中的项目时遇到了一个大问题 我的模型中有以下结构 class User db Model tablename user user id db Column db String
  • 使用Python请求登录Google帐户

    在多个登录页面上 需要谷歌登录才能继续 我想用requestspython 中的库以便让我自己登录 通常这很容易使用requests库 但是我无法让它工作 我不确定这是否是由于 Google 做出的一些限制 也许我需要使用他们的 API 或
  • 使用字典映射数据帧索引

    为什么不df index map dict 工作就像df column name map dict 这是尝试使用index map的一个小例子 import pandas as pd df pd DataFrame one A 10 B 2
  • 立体太阳图 matplotlib 极坐标图 python

    我正在尝试创建一个与以下类似的简单的立体太阳路径图 http wiki naturalfrequent com wiki Sun Path Diagram http wiki naturalfrequency com wiki Sun Pa
  • datetime.datetime.now() 返回旧值

    我正在通过匹配日期查找 python 中的数据存储条目 我想要的是每天选择 今天 的条目 但由于某种原因 当我将代码上传到 gae 服务器时 它只能工作一天 第二天它仍然返回相同的值 例如当我上传代码并在 07 01 2014 执行它时 它
  • 从Python中的字典列表中查找特定值

    我的字典列表中有以下数据 data I versicolor 0 Sepal Length 7 9 I setosa 0 I virginica 1 I versicolor 0 I setosa 1 I virginica 0 Sepal
  • 如何在不丢失注释和格式的情况下更新 YAML 文件 / Python 中的 YAML 自动重构

    我想在 Python 中更新 YAML 文件值 而不丢失 Python 中的格式和注释 例如我想改造 YAML 文件 value 456 nice value to value 6 nice value 界面类似于 y yaml load
  • 如何使用 Mysql Python 连接器检索二进制数据?

    如果我在 MySQL 中创建一个包含二进制数据的简单表 CREATE TABLE foo bar binary 4 INSERT INTO foo bar VALUES UNHEX de12 然后尝试使用 MySQL Connector P
  • Numpy - 根据表示一维的坐标向量的条件替换数组中的值

    我有一个data多维数组 最后一个是距离 另一方面 我有距离向量r 例如 Data np ones 20 30 100 r np linspace 10 50 100 最后 我还有一个临界距离值列表 称为r0 使得 r0 shape Dat
  • 使用特定颜色和抖动在箱形图上绘制数据点

    我有一个plotly graph objects Box图 我显示了箱形 图中的所有点 我需要根据数据的属性为标记着色 如下所示 我还想抖动这些点 下面未显示 Using Box我可以绘制点并抖动它们 但我不认为我可以给它们着色 fig a
  • 如何断言 Unittest 上的可迭代对象不为空?

    向服务提交查询后 我会收到一本字典或一个列表 我想确保它不为空 我使用Python 2 7 我很惊讶没有任何assertEmpty方法为unittest TestCase类实例 现有的替代方案看起来并不正确 self assertTrue
  • 如何在 Windows 命令行中使用参数运行 Python 脚本

    这是我的蟒蛇hello py script def hello a b print hello and that s your sum sum a b print sum import sys if name main hello sys
  • 使用for循环时如何获取前一个元素? [复制]

    这个问题在这里已经有答案了 可能的重复 Python 循环内的上一个和下一个值 https stackoverflow com questions 1011938 python previous and next values inside
  • 模拟pytest中的异常终止

    我的多线程应用程序遇到了一个错误 主线程的任何异常终止 例如 未捕获的异常或某些信号 都会导致其他线程之一死锁 并阻止进程干净退出 我解决了这个问题 但我想添加一个测试来防止回归 但是 我不知道如何在 pytest 中模拟异常终止 如果我只

随机推荐

  • MPI_Send() 和 MPI_Ssend() 之间的区别?

    I know MPI Send 是一个阻塞调用 它会等待直到可以安全地修改应用程序缓冲区以供重用 为了使发送调用同步 应该与接收者握手 我们需要使用MPI Ssend 我想知道两者之间的区别 假设我需要在进程之间发送固定数量的字节 哪一个应
  • 函数式编程中的无限循环?

    我想知道 在函数式编程中可以完成无限循环吗 例子 使用windows API获取windows消息时 通常是循环实现的 我知道可以创建一个无限期递归的函数 我预计这会导致堆栈溢出 对于函数式编程来说 无限循环是错误的思维模式吗 是操作系统接
  • 如何从 JavaScript 中的 URL 获取基域

    我想从 javascript 中的 url 中提取基本域 例如 对于下面列出的网址列表 我需要获取谷歌网站 or google co in视情况而定 作为结果 www google comwww google co inwww images
  • 循环向量(R 中的自省?)或其他方法

    我有一张桌子tf带有列标题的值formant vowel length IL SG 这就是我获取它们的值的方式 f1a lt subset tf tf vowel a tf formant F1 IL f2a lt subset tf tf
  • 如何使用 docker-compose 更新现有镜像?

    我有多个微服务 并且正在使用 docker compose 进行开发部署 当微服务代码库发生一些变化时 我会触发 ci 作业来重新部署它们 我有下面的脚本来执行此操作 但每次我都必须从头开始构建所有图像 然后运行它们 完成所有这些操作后 我
  • SQLAlchemy 类型对象“日期”没有属性“_set_parent_with_dispatch”

    我正在使用 sqlalchemy 和简单模型模式 class Mail Base tablename mail id Column Integer primary key True date Column Date nullable Fal
  • 使用 ggplot 将图例添加到单折线图

    我只是尝试制作一个折线图并使用 R 中的 ggplot 添加图例 以下是我的代码 ggplot mtcars aes x mpg y wt geom line stat identity scale fill identity name g
  • Visual Studio 2010 - 无法从 GAC 添加程序集引用

    我现在已经转到 Visual Studio 2010 Beta 2 我已经使用了几天 但现在我无法再添加来自 GAC 的参考文献 http bildr no view 549966 http bildr no view 549966 抱歉
  • 从 getaddrinfo() 获取服务器 ip 0.0.0.0:0

    我正在遵循 Beej 的 NP 指南 我做了一些修改 并尝试通过 getaddrinfo 获取我的服务器程序的 IP 原文可以在这里找到http beej us guide bgnet output html singlepage bgne
  • Android:数据库 sqLite 不插入表

    我试图将数据插入数据库 但添加后 当我检查数据库时 我得到一个空结果 这意味着它仍然是空的 我不知道错误在哪里 我做了一些日志 但没有看到错误 我确信我犯了一个愚蠢的错误 但我看不到它 此插入不起作用 bdd insert TABLE RS
  • 使用 Visual C++ 编译器在 Windows 上构建库时如何正确设置目标操作系统版本

    我正在使用 Visual C 2013 编译器 特别是在 Windows 平台上具有 C 11 功能 构建跨平台库 并使用 CMake NMake 生成器 作为构建系统 我使用的是 Windows 7 我的库使用一些仅在 Windows 8
  • 导出的 Google+ 照片,如何将 JSON 数据转换为 EXIF?

    最近使用 Google Takeout 从 Google 下载了 60GB 以上的照片和视频 这会产生大量文件 但有价值的元数据 包括照片的原始日期和位置 通常存储在每个相册的单独的metadata json 文件中 而不是存储在 EXIF
  • 如何使用 Odata Dynamics NAV 2017 Web 服务删除记录

    我开发了一个连接到 Microsoft Dynamics NAV 2017 OData Web 服务的 php 应用程序 我可以毫无问题地读取 GET 和创建 POST 但对于删除 我收到错误 405 微软说可以删除 https msdn
  • 无状态和有状态 Enterprise Java Bean

    我正在阅读 Java EE 6 教程 并试图了解无状态会话 bean 和有状态会话 bean 之间的区别 如果无状态会话 Bean 在方法调用之间不保留其状态 为什么我的程序会这样运行 package mybeans import java
  • 将 AWT 图像转换为 SVG 图像

    我正在使用以下代码摄取 AWT 图像 从 PDF 通过 PDFBox private java awt Graphics2D graphics public void drawImage java awt Image awtImage ja
  • 从 Android 联系人列表中获取电子邮件

    如何在Android联系人中以编程方式获取选定人员的电子邮件ID 应该支持所有版本 我尝试过 people 类 但主要电子邮件方法已被弃用 提前致谢 Aswan 嘿阿斯旺 我从来没有这样做过 但可以给你想法 此代码让您了解如何将电子邮件添加
  • 如何将带有重音符号、变音符号等的字母转换为 Perl 中对应的 ASCII 字母?

    我正在编写一个与 Perl 中的文档一起使用的程序 许多文档都具有诸如 etc 大写和小写 我想将它们替换为 ASCII 对应项a o u e etc 我将如何在 Perl 中做到这一点 我想到的解决方案之一是使用一个散列 其中键是元音变音
  • 如何解决打字稿中隐式任何类型到索引类型错误?

    如何解决这个错误 元素隐式具有 any 类型 因为 any 类型的表达式不能用于索引类型 这个错误背后的原因是什么 什么是索引类型 代码如下 const getPast action gt const presentToPast appro
  • 在 php 中解压参数数组

    Python 提供了 运算符来解压元组列表并将它们作为参数提供给函数 如下所示 args 3 6 range args call with arguments unpacked from a list 这相当于 range 3 6 有谁知道
  • 带有圆形图像的 QLabel

    我想在 PyQt5 PySide2 应用程序中显示圆形图像 下面是我尝试过的代码 self statusWidget QLabel img QImage image jpg scaled 49 49 Qt IgnoreAspectRatio