如何在pyqt中使QRadioButton圆圈加粗?

2023-12-10

I have a qradiobutton and I want to make bold like this image enter image description here

我尝试了这段代码,但我得到了一个正方形,并且无法选择 QradioButton:

import sys
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *



class main(QMainWindow):

    def __init__(self):
        super().__init__()

        self.setGeometry(50, 50, 600, 500)
        self.Qradio = QRadioButton('click', self)
        self.Qradio.move(50, 50)
        self.Qradio.setStyleSheet(''' QRadioButton::indicator {border : 2px solid black;}''')
        
if __name__ == "__main__":
    app = QApplication(sys.argv)
    mai = main()
    mai.show()
    app.exec()

我能想到的唯一可能性是,使用样式表将边框半径设置为单选指示器大小的一半,以获得一个“圆圈”。

您可以根据当前样式使用默认的单选指示器大小:

        size = self.style().pixelMetric(QStyle.PM_ExclusiveIndicatorWidth)
        self.Qradio.setStyleSheet('''
            QRadioButton::indicator {{
                border: 2px solid black; 
                border-radius: {}px;
            }}
            QRadioButton::indicator:checked {{
                background: rgb(64, 64, 64);
            }}
        '''.format(size // 2))

否则设置您自己的,确保您根据边框宽度正确计算尺寸:

        size = 25
        border = 2
        self.Qradio.setStyleSheet('''
            QRadioButton::indicator {{
                border: {border}px solid black; 
                height: {size}px;
                width: {size}px;
                border-radius: {radius}px;
            }}
            QRadioButton::indicator:checked {{
                background: rgb(64, 64, 64);
            }}
        '''.format(size=size - border * 2, border=border, radius=size // 2))

您甚至可以获得inner使用一个小技巧来画圆:一个径向渐变,它有一个与边界成一定比例的“边界”:

checked radio

        size = 20
        border = 2
        self.Qradio.setStyleSheet('''
            QRadioButton::indicator {{
                border: {border}px solid black; 
                height: {size}px;
                width: {size}px;
                border-radius: {radius}px;
            }}
            QRadioButton::indicator:checked {{
                background: qradialgradient(
                    cx:.5, cy:.5, radius: {innerRatio},
                    fx:.5, fy:.5,
                    stop:0 {checkColor}, 
                    stop:0.45 {checkColor},
                    stop:0.5 transparent,
                    stop:1 transparent
                    );
            }}
        '''.format(
            size=size - border * 2, 
            border=border, 
            radius=size // 2, 
            innerRatio=1 - (border * 2 + 1) / size, 
            checkColor='#056060'
        ))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在pyqt中使QRadioButton圆圈加粗? 的相关文章

随机推荐

  • 一旦开始,如何停止intent.ACTION_CALL?

    我在用Intent intent new Intent Intent ACTION CALL 从我的应用程序拨打电话 有什么办法可以在一段时间后终止通话吗 或者在ACTION CALL开始之前设置一个计时器 我正在使用 Prasanta 博
  • Emacs 击键表示混乱

    我通常在 emacs 中使用定义新的键绑定 C x gt command kmacro start macro C x gt kmacro end macro name last kbd macro insert kbd macro But
  • 在 C# 中合并两个对象

    我有一个对象模型MyObject具有各种属性 在某一时刻 我有两个这样的实例MyObject 实例 A 和实例 B 如果实例 B 具有非空值 我想复制实例 A 中的属性并将其替换为实例 B 的属性 如果我只有 1 个具有 3 个属性的类 没
  • android.R.id.empty 在 Xoom/Honeycomb 中损坏?

    我一直在尝试制作没有切换点的单选按钮 我通过这样做取得了成功 myRadioButton setButtonDrawable android R id empty 这在 Honeycomb 3 0 x 之前的所有设备中都可以正常工作 当我尝
  • 如何访问 Swift 中闭包内的变量?

    我是 Swift 新手 我正在尝试从这个函数中获取结果 我不知道如何访问从闭包外部传递给 sendAsynchronousRequest 函数的闭包内部的变量 我已经阅读了 Apple Swift 指南中有关闭包的章节 但没有找到答案 并且
  • Node Docker 运行,但看不到应用程序

    我的 Hapi 应用程序似乎正在 Docker 容器中运行 但我无法在浏览器中访问它 我以为docker run d p 8080 3000本来会这么做的 但我想不会 我正在运行 boot to docker 但两者都没有http loca
  • 异步/等待多核

    async await 是否应该与线程一起使用以利用多核 我不完全理解 async await 但看起来它不会创建新线程并且不使用线程池 因此它在当前线程上运行代码 这意味着不支持多核 async await与跨多个核心的负载平衡工作无关
  • ASP.NET Core RC2 和 .NET 4.5.1 应用程序之间的共享 cookie 身份验证

    我们有两个运行共享 cookie 身份验证的 NET 应用程序 一个是 ASP NET Core RC1 应用程序 另一个是经典的 NET 4 5 1 应用程序 目前这是使用过时的设置Microsoft Owin Security Cook
  • 单击 Gmail 中的链接是否会发送引用标头?

    这主要是出于隐私考虑 如果我在 Gmail 或任何其他电子邮件提供商 上打开一封包含网站链接的电子邮件 并且最终点击该链接 Gmail 是否会发送引用标头 即 目标网站会知道我来自 Gmail 他们会知道我点击链接时使用的电子邮件地址吗 最
  • JPanel 内部的半透明组件

    我有从 JPanel 扩展的类 MyPanel MyPanel 类有一个包含图标的 JLabel 组件 我的问题是如何绘制 渲染此 JLabel 组件以在 MyPanel 类中获得半透明效果 通过图标查看 而不是创建 xxxJLabel 扩
  • 将锚标记中的图像居中

    我的锚标记中有一张图像 我需要将其居中 我已经成功地使用了我刚刚在 DOM 检查器中遇到的这项技术来做到这一点 http jsfiddle net m6e3m it uses display table margin 0 auto 我尝试使
  • 设置SQLite v3数据库的密码

    我的应用程序使用存储在可通过网络获取的文件中的数据库 到目前为止 我一直在使用MS Access文件 accdb 但我正在尝试迁移到SQLite 版本 3 db3 我将 SQLite NuGet 包添加到我的项目中并使用创建了 SQLite
  • 如何让nbviewer显示本地文件?

    我已经安装了 nbviewer 并且可以工作 我看到它有一个 localfiles带有文件夹名称的选项 它说 在 home gb S14 inclass 中为本地笔记本提供服务 这可能存在安全风险 但我无法弄清楚 URL 格式让它在那里查找
  • 从表单中删除空输入元素

    我有一个简单的表单 可以继续创建 codeigniter 的所有表单和验证要求 我想要做的是在序列化之前过滤掉任何空输入 这样我就不会创建表单输入和表单验证集规则 我不知道该怎么做 Jquery 中出现警报的地方是我想要删除任何空输入的地方
  • 在 scala 控制台中打开和关闭 JavaFx 应用程序

    这是一个例子 Copyright 2013 ScalaFX Project All right reserved package scalafx ensemble example charts import scalafx applicat
  • 为什么 CreateProcess 给出错误 193(%1 不是有效的 Win32 应用程序)

    下面的代码无法启动文档 我收到错误 193 1 不是有效的 Win32 应用程序 启动可执行文件工作正常 这些文件已正确关联 双击时会启动相应的应用程序 我已经在 SO 和其他地方搜索了错误消息 createprocess 内容等 例如为什
  • HTML 仍然用 读取 php 代码

    我有以下问题 我在页面中使用了以下代码来忽略一些 php 代码 但似乎感恩节周末有更新 并且不再忽略代码 其余的 html 代码将被忽略
  • 禁用 JOptionPane.dialog 上的“确定”按钮,直到用户提供输入

    我需要用户输入名称 并且我想禁用 确定 按钮 直到给出一些输入 我怎样才能禁用它 JOptionPane允许您提供一个组件作为消息窗格以及可以在其上显示的控件 选项 如果将正确的侦听器添加到消息组件 那么您应该能够影响用作选项的控件 看一眼
  • 比较指针时不会调用重载的“==”运算符

    我有一个任务类 其中有一个string text私人会员 我访问变量槽const string getText const 我想要超载 运算符检查对象的不同实例是否具有相同的文本 我已宣布公开bool operator const Task
  • 如何在pyqt中使QRadioButton圆圈加粗?

    I have a qradiobutton and I want to make bold like this image 我尝试了这段代码 但我得到了一个正方形 并且无法选择 QradioButton import sys from Py