qt中是否有范围为(0,0)的圆形QProgressbar?

2023-12-04

我希望有circular QProgressbar它的外观必须看起来像正常的QProgressbar范围在 0 到 0 之间。

线性代数的代码QProgressbar是像下面这样的东西:

QProgressBar *_progressBar = new QProgressBar();
_progressBar->setTextVisible(false);
_progressBar->setRange(0, 0);

enter image description here

但我希望它是圆形的。有没有办法在qt中实现呢?


有一天,我编写了一个简单的类来实现一个圆形进度条以达到我的目的(Qt 4.6)。您可以根据需要修改其外观。希望它会有所帮助。

加载.h

#pragma once

#include <QtGui>

class Loading : public QWidget {
    Q_OBJECT
public:
    explicit Loading(QWidget *parent);

protected:
    double current;
    bool eventFilter(QObject *obj, QEvent *ev);
    bool event(QEvent *);
    void paintEvent(QPaintEvent *);
    void timerEvent(QTimerEvent *);
};

加载.cpp

#include "loading.h"

/**
 * @brief Creates a circular loading
 * @param parent - non-NULL widget that will be contain a circular loading
 */
Loading::Loading(QWidget *parent) : QWidget(parent), current(0) {
    Q_ASSERT(parent);
    parent->installEventFilter(this);
    raise();
    setAttribute(Qt::WA_TranslucentBackground);
    startTimer(20);
}

bool Loading::eventFilter(QObject *obj, QEvent *ev) {
    if (obj == parent()) {
        if (ev->type() == QEvent::Resize) {
            QResizeEvent * rev = static_cast<QResizeEvent*>(ev);
            resize(rev->size());
        }
        else if (ev->type() == QEvent::ChildAdded)
            raise();
    }
    return QWidget::eventFilter(obj, ev);
}

bool Loading::event(QEvent *ev) {
    if (ev->type() == QEvent::ParentAboutToChange) {
        if (parent()) parent()->removeEventFilter(this);
    }
    else if (ev->type() == QEvent::ParentChange) {
        if (parent()) {
            parent()->installEventFilter(this);
            raise();
        }
    }
    return QWidget::event(ev);
}

void Loading::paintEvent(QPaintEvent *) {
    QPainter p(this);
    p.fillRect(rect(), QColor(100, 100, 100, 64));

    QPen pen;
    pen.setWidth(12);
    pen.setColor(QColor(0, 191, 255));  // DeepSkyBlue
    p.setPen(pen);

    p.setRenderHint(QPainter::Antialiasing);

    QRectF rectangle(width()/2 - 40.0, height()/2 - 40.0, 80.0, 80.0);

    int spanAngle = (int)(qMin(0.2, current) * 360 * -16);
    int startAngle = (int)(qMin(0.0, 0.2 - current) * 360 * 16);

    p.drawArc(rectangle, startAngle, spanAngle);
}

void Loading::timerEvent(QTimerEvent *) {
    if (isVisible()) {
        current += 0.03;
        if (current > 1.2) current = 0.2; // restart cycle
        update();
    }
}

Usage

#include "loading.h"

int main(int argc, char *argv[]) {
    QApplication a(argc, argv);
    QLabel w;
    w.setMinimumSize(400, 400);
    Loading *loading = new Loading(&w);
    QTimer::singleShot(4000, loading, SLOT(hide()));
    w.show();
    return a.exec();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

qt中是否有范围为(0,0)的圆形QProgressbar? 的相关文章

  • EF Core 返回 null 关系,直到直接访问

    我有一些如下所示的模型 public class Mutant public long Id get set Relations public long OriginalCodeId get set public virtual Origi
  • 如何使用不同的基本路径托管 Blazor WebAssembly 应用程序

    我有一个 Blazor Webassemble NET 托管应用程序 在我们托管它的服务器上 应用程序的基本路径将是mydomain com coolapp 因此 为了尝试让应用程序在服务器上正确呈现 我一直遵循本页 应用程序基本路径 部分
  • 使用管道在父级和子级之间传递整数值

    我对如何正确使用 pipeline 在两个进程之间传递整数值有点困惑 在我的程序中 我首先创建一个管道 然后分叉它 我假设我有 两个 管道 据我了解 这是我的任务 我的父母通过 for 循环检查某个操作的整数值 i 增加计数变量 并将值保存
  • 非模板函数中的尾随返回类型[重复]

    这个问题在这里已经有答案了 我见过有人使用以下语法来实现函数 auto get next gt int 代替 int get next 我理解两者 并且我知道尾随返回类型语法对于使用 decltype 的模板代码很有用 就我个人而言 我会避
  • 并行运行多个任务

    我有一个代理列表 每个代理都会访问不同的站点并从站点中提取所需的数据 目前它一次只做一个 但我希望同时运行 10 20 个任务 这样它就可以一次性从 20 个站点下载 而不是只下载一个 这是我目前正在做的事情 private async T
  • 如何使用T4从一个模板同时生成两个文件?

    我遇到的情况是 我需要生成两个 CSharp 代码文件 它们的代码几乎相同 但方法的输入和输出类型的命名空间不同 事实上 每个文件都针对特定国家 地区 并且类型来自特定国家 地区的 WSDL 我正在围绕服务编写一些包装器 逻辑完全相同 但从
  • 从图像创建半透明光标

    是否可以从图像创建光标并使其半透明 我目前正在拍摄自定义图像并覆盖鼠标光标图像 如果我可以将其设为半透明 那就太好了 但不是必需的 销售人员喜欢闪亮的 目前正在做这样的事情 Image cursorImage customImage Get
  • 当我尝试传递临时地址作为参数时,它是一个 UB 吗?

    对于以下 C 代码 include
  • 运行实体框架自定义工具,它有什么作用?

    在 Visual Studio 中 当使用实体框架并为 tt 和 Context tt 文件应用运行自定义工具时 它是什么以及它有什么作用 为什么它解决数据库同步问题 有时 为什么我应该在运行 tt 之前运行它 Context tt 它被称
  • 如何在Windows窗体中打开进程

    我想在我的 Windows 窗体应用程序中打开进程 例如 我希望当用户按下 Windows 窗体容器之一中的按钮时 mstsc exe 将打开 如果他按下按钮 它将在另一个容器上打开 IE DllImport user32 dll SetL
  • fgets溢出后如何清除输入缓冲区?

    当输入字符串超出其预定义限制时 我遇到了 fgets 的小问题 以下面的例子为例 for index 0 index lt max index printf Enter the d string index 1 if fgets input
  • MPI - 发送和接收列

    我需要从一个进程发送矩阵列并从另一个进程接收它 我尝试运行以下程序 但得到了一个奇怪的结果 至少我这么认为 仅复制矩阵的第一个元素 某些矩阵元素会发生意外变化 include
  • C++网络序列化[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一种将 C 数据包序列化为网络流的解决方案 我在这里看到很多帖子提到人们 ACE 谷歌协议缓
  • g++ / gcc 是否支持 C++20 新的atomic_flag 功能?

    根据参考参数 https en cppreference com w cpp atomic atomic flag c 20 有丰富的 对我来说有用的 支持atomic flag运营 然而 目前尚不清楚 gcc 是否支持这些功能 它们在任何
  • 为什么我可以在另一个函数中定义一个函数?

    请参阅下面的代码 我在另一个函数中定义了一个函数 void test1 void void test2 void printf test2 n printf test1 n int main void test1 return 0 这个用法
  • 跟踪白色背景中的白球(Python/OpenCV)

    我在 Python 3 中使用 OpenCV 来检测白场上的白 黑球 并给出它的精确 x y 半径 和颜色 我使用函数 cv2 Canny 和 cv2 findContours 来找到它 但问题是 cv2 Canny 并不总是检测到圆的完整
  • 尝试后终于没有被调用

    由于某种原因 在我的控制台应用程序中 我无法运行我的finally 块 我编写这段代码是为了测试finally块是如何工作的 所以它非常简单 static void Main int i 0 try int j 1 i Generate a
  • 使用空的weak_ptr作为参数调用map::count安全吗?

    打电话安全吗map count http www cplusplus com reference map map count on an 未初始化因此为空weak ptr http en cppreference com w cpp mem
  • 将同步 zip 操作转换为异步

    我们有一个现有的库 其中一些方法需要转换为异步方法 但是我不确定如何使用以下方法执行此操作 错误处理已被删除 该方法的目的是压缩文件并将其保存到磁盘 请注意 zip 类不公开任何异步方法 public static bool ZipAndS
  • NHibernate:无状态会话错误消息无法获取代理

    我正在使用 nHibernate 无状态会话来获取对象 更新一个属性并将对象保存回数据库 我不断收到错误消息 无状态会话无法获取代理 我在其他地方有类似的代码 所以我不明白为什么这不起作用 有谁知道问题可能是什么 我正在尝试更新Screen

随机推荐

  • BitmapFactory.decodeStream 无法从 ftp 解码 png 类型

    我的错误是什么 如何显示来自 FTP 的 png 我是 android 新手 尝试显示来自不同连接 源的图像 然后我已经显示了从可绘制和 HTTP 加载的图像 现在 我尝试从 FTP 显示 当我使用时 我收到消息 解码器 gt 解码返回 f
  • MySQL 理解基本连接

    我正在努力理解基本的 MySQL 连接 基本上我有 2 个表 其中一个包含客户的名字和地址 ID 另一个包含实际地址 我希望它不只是显示客户名称和地址 ID 而是显示客户名称和实际地址 我的基本选择语句是这样的 SELECT firstNa
  • 使用 Retrofit 获得通用 URL 的任何方法

    我有几个接受相同 GET 参数的 URL 主要用于分页目的 如下所示 public interface AsynchronousApi GET api users public void listUsers Query limit Inte
  • 从jquery处理android中的后退按钮

    我们用 jQuery 开发了一个与 android 集成的应用程序 只有一个 Activity 从这个活动中 我们加载一个 HTML 文件 在这个文件上我们显示和隐藏 div 内容 查看此处提供的网页并按 android 中提供的后退按钮时
  • 在 FullCalendar 中显示周数

    我正在寻找一种在议程周视图上显示周数的方法 我试过了这个方法但没有结果 实际上 我需要像这样将数字放在日历标题中 titleFormat month Calendar br MMMM yyyy week Calendar br Week W
  • log_softmax() 如何实现以更快的速度和数值稳定性计算其值(和梯度)?

    MXNet 和 PyTorch 都提供了计算 log 的特殊实现 softmax 速度更快 数值更稳定 但是 我在这两个包中都找不到该函数 log softmax 的实际 Python 实现 谁能解释一下这是如何实现的 或者更好的是 给我指
  • 快速行插入 UITableView 会导致 NSInternalInconsistencyException

    我有一个 UITableView 有时会快速插入新行 新行的插入由通知观察者处理 该通知观察者监听每当基础数据发生更改时触发的更新通知 我在所有数据模型更改和实际通知发布本身周围使用 synchronized 块 希望每个增量数据更改 和行
  • 遍历已填充的行

    因此 我尝试使用 VBA 迭代 Excel 电子表格中的工作表 我想遍历每一行 然后遍历每一列 尽管进行了谷歌搜索 但我实际上无法找到一种直观的方法来做到这一点 我假设必须填充一行的第一个单元格 如果没有 那么那一定是结束 我可以强制执行这
  • 为什么我们必须在 C# 中同时定义 == 和 !=?

    C 编译器要求每当自定义类型定义运算符时 它还必须定义 see here Why 我很好奇为什么设计者认为有必要 以及为什么编译器不能在只有另一个运算符存在时默认为其中一个运算符提供合理的实现 例如 Lua 允许您仅定义相等运算符 而您可以
  • Javascript 正则表达式和边界

    一位同事问我一个正则表达式问题 我似乎无法找到并回答他 我们使用边界在文本编辑器中突出显示特定长度的文本 但这里有一些示例代码显示了该问题 问题是 第一个文字 str replace 有效
  • 如何在反应中显示表格中的对象数组

    最近在学习react 我将状态设置为对象数组 我想在页面上的表格中显示该数组 每个对象在一行上 我一直在研究地图 但是我在理解它时遇到了一些困难 我能够在代码中的不同位置很好地使用映射来映射array 但我在通过映射时遇到问题对象数组 此代
  • 如何使用 Google Visualization Query 搜索电子表格

    我有这个简单的网页它使用 google visualization Query 从中提取三个特定单元格的值电子表格 然后根据三个相应输入字段的唯一 id 属性设置其值 google load visualization 1 packages
  • 从子路由渲染的 Jade 模板链接到静态文件

    我在使用 Node js Express Jade 时遇到了一个非常基本的问题 该问题非常难以描述 在我的 node js 应用程序中 我使用 Express 框架来路由 HTTP 请求 我还使用 Jade 模板作为视图 它们本身链接到我通
  • 如何从数据库表中为用户添加地理位置标记?

    我想对每个用户进行地理定位 我在用户表中添加两个字段纬度和经度 这是我的地图页面map html
  • 使用索引向量重新排序向量[重复]

    这个问题在这里已经有答案了 我想对向量中的项目重新排序 使用另一个向量来指定顺序 char A a b c size t ORDER 1 0 2 vector
  • 从 android 活动返回值到片段

    我有片段 F 它调用活动 A 在活动 A 中按下按钮 B 时 活动必须将选定的数组列表值返回到片段 F 并完成活动 A 这可能吗 我从 Activity 知道您可以发送意图如下的数据 Bundle bundle new Bundle bun
  • GORM 阻止为域创建外键约束

    我正在 Grails 中开发一个基于 Web 的应用程序 我遇到过一种情况 我想尝试禁止 GORM 在表中的字段上创建外键约束 我有一个域类 它是类层次结构的一部分 域类本质上充当到目标域的链接 目标域可以是不同的类型 并且该链接域的每个子
  • 如何在新选项卡/窗口中打开每个 WordPress 帖子?

    我有一个wordpress博客的主页显示 10 篇最新帖子的列表 现在 每当我单击任何帖子标题时 都会在同一选项卡中打开一个新帖子 但在这里我想让它在新选项卡中打开 那么 我该怎么做呢 Wordpress 中的每个主题都有不同的模板 尝试寻
  • Unity3D 将 json 发布到 ASP.NET MVC 4 Web Api

    如何将 json 值发布到 ASP NET MVC 4 Web Api 控制器 我尝试了几种方法 但无法使其发挥作用 首先 我简化了控制器操作 HttpPost public Interaction Post Interaction fil
  • qt中是否有范围为(0,0)的圆形QProgressbar?

    我希望有circular QProgressbar它的外观必须看起来像正常的QProgressbar范围在 0 到 0 之间 线性代数的代码QProgressbar是像下面这样的东西 QProgressBar progressBar new