带圆角的 QT/QML 材质进度条

     2023-02-23     78

关键词:

【中文标题】带圆角的 QT/QML 材质进度条【英文标题】:QT/QML Material ProgressBar with rounded corners 【发布时间】:2019-05-28 10:46:22 【问题描述】:

我想拥有 Material 风格的 ProgressBar 组件,但要进行一些修改以使其高度可调。 到目前为止一切顺利,我得到了我想要的结果。

所以我只是将这段代码复制到 MyPb.qml 中以将其用作组件:

import QtQuick 2.11
import QtQuick.Templates 2.4 as T
import QtQuick.Controls.Material 2.4
import QtQuick.Controls.Material.impl 2.4

T.ProgressBar 
    id: control
    property real radius: 3

    contentItem: ProgressBarImpl 
        implicitHeight: control.height

        scale: control.mirrored ? -1 : 1
        color: control.Material.accentColor
        progress: control.position
        indeterminate: control.visible && control.indeterminate
    

    background: Rectangle 
        implicitWidth: control.width
        implicitHeight: control.height
        radius: control.radius

        color: Qt.rgba(control.Material.accentColor.r, control.Material.accentColor.g, control.Material.accentColor.b, 0.25)
    

为了举例,给出了这个结果:

附上代码:

Rectangle 
    width: 600
    height: 300
    color: "black"

    MyPb 
        anchors.centerIn: parent
        id: prg
        width: 100
        height: 20
        indeterminate: false
        radius: 5
        visible: true
        value: 0.5
    

由于 ProgressBarImpl 并不真正支持半径,圆角被“埋”在不透明的进度矩形下,如图所示(进度条左侧)。

现在,我不制作自己的进度条的原因是我也想要“不确定”动画。所以我以为会很多 重用 Qt 实现比开始自己制作更简单 动画。

所以我想知道是否有办法让 Material 进度条,但对其应用某种处理以在不确定 = false/true 的情况下获得圆角。

任何帮助将不胜感激!

【问题讨论】:

您使用的是什么版本的 Qt?我有很多。有时特定版本非常重要,有时则不重要,但我宁愿从正确的版本开始,以防万一。 :) @AshleyTharp 我正在使用 QT 5.11,但坦率地说,任何更新的版本都适合我(例如,如果它与 5.12 一起工作,我很乐意切换) 尝试将ProgressBarpadding 属性设置为非零,并将contentItem 使用Rectangle 并将其半径设置为3。我上周实现了您想要的那个,但我没有现在没有它。 【参考方案1】:

请参阅 Qt 论坛中的以下帖子: https://forum.qt.io/topic/91649/make-a-round-progress-bar/7

那里提出的进度条由以下组件组成:

    圆角矩形表示进度条的“波谷” 一个Item,作为一个矩形剪辑路径 该项目内的圆形矩形,用作彩色条

根据您的问题,我得到以下代码作为概念验证:

import QtQuick 2.9

Rectangle 
    property int percentage: 40
    id: root
    width: 400
    height: 100
    radius: height / 2
    color: "#333"

    Item 
        id: cliprect
        anchors.bottom: parent.bottom
        anchors.top: parent.top
        anchors.left: parent.left
        width: parent.width * parent.percentage / 100
        clip: true

        Rectangle 
            width: root.width                        
            height: root.height 
            radius: height / 2
            anchors.bottom: parent.bottom
            anchors.left: parent.left
            color: "#e33"
        
    

应该很容易将其移动到模板中/使其与材料属性兼容。

【讨论】:

【参考方案2】:

您可以尝试使用background 项目作为掩码源在contentItem 上设置OpacityMask

如果这不起作用,创建一个进度条会更容易。毕竟它是一个非常琐碎且非交互的组件,使用界面很小。

【讨论】:

遗憾的是,我尝试了 OpacityMask 并且进度矩形(例如,当 value = 0.3 时宽度为 30% 的那个)没有显示,动画也没有显示。我不知道为什么。

带圆角的 Android 圆形进度条

】带圆角的Android圆形进度条【英文标题】:Androidcircularprogressbarwithroundedcorners【发布时间】:2016-08-0623:37:54【问题描述】:我正在尝试获得一个带有圆角的圆形进度条,如下所示。但到目前为止,我无法获得圆角,我能够获得圆... 查看详情

带圆角的进度条?

】带圆角的进度条?【英文标题】:Progressbarwithroundedcorners?【发布时间】:2017-07-2713:25:35【问题描述】:我正在尝试实现这个进度条设计:我拥有的当前代码产生了这个:这是代码:<itemandroid:id="@android:id/background"><shape>... 查看详情

怎样用div实现带百分百环形进度条

...html5直接就可用css3的属性去做圆形,border-radius即可实现圆角。2、图片形式,左右两侧做圆角图片,衔接好,即可实现,但右侧的需要在技术时进行变化3、背景形式,做左右两侧背景色+圆角png透明背景,背景采用颜色填充即可... 查看详情

QT 5.7 QML 快速半透明矩形,一侧有圆角

】QT5.7QML快速半透明矩形,一侧有圆角【英文标题】:QT5.7QMLquicksemi-transparentrectangle,withroundedcornersononeside【发布时间】:2017-03-1406:02:28【问题描述】:我想要一个使用QtQuickQML的半透明矩形,但只有一侧有圆角。这是我想要的矩形... 查看详情

Angular - 材质:进度条自定义颜色?

】Angular-材质:进度条自定义颜色?【英文标题】:Angular-Material:Progressbarcustomcolor?【发布时间】:2018-07-2921:49:34【问题描述】:我现在尝试了几个小时。我使用Material2,只是想更改进度条的颜色。我知道有这些主题(主要/重音/... 查看详情

给 UISlider 进度条圆角 [Swift]

】给UISlider进度条圆角[Swift]【英文标题】:GiveUISliderprogressbarroundedcorners[Swift]【发布时间】:2020-07-0416:32:44【问题描述】:我想知道是否有人知道如何自定义UISlider以使进度条圆角(没有拇指图像),如下图所示:我想要什么:... 查看详情

微信小程序progress进度条内部圆角及内部条渐变色

参考技术A微信小程序progress进度条内部圆角及渐变色设置progressCSS:效果: 查看详情

带进度条的文件复制

】带进度条的文件复制【英文标题】:FileCopywithProgressBar【发布时间】:2011-08-2800:40:16【问题描述】:我使用了这个代码:usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Windows.Forms;usingSystem.IO;namespaceWindowsApplication 查看详情

带进度条的文件上传?

】带进度条的文件上传?【英文标题】:Fileuploaderwithprogressbar?【发布时间】:2011-09-1108:01:12【问题描述】:如何创建带有进度条的HTML/PHP/AJAX文件上传器?我不知道从哪里开始。【问题讨论】:【参考方案1】:我用过Uploadify。易... 查看详情

带 tqdm 的 asyncio aiohttp 进度条

】带tqdm的asyncioaiohttp进度条【英文标题】:asyncioaiohttpprogressbarwithtqdm【发布时间】:2016-06-1820:21:04【问题描述】:我正在尝试集成tqdm进度条来监控在Python3.5中使用aiohttp生成的POST请求。我有一个工作进度条,但似乎无法使用as_com... 查看详情

带线程的 PyQt 进度条更新

】带线程的PyQt进度条更新【英文标题】:PyQtProgressBarUpdatewithThreads【发布时间】:2017-08-0418:44:49【问题描述】:我一直在编写一个在服务器上运行远程脚本的程序。所以,我需要用一个栏显示进度,但是当我运行我的代码时,GUI... 查看详情

带 ProgressBar 的 CountDownTimer,重启应用时继续进度条

】带ProgressBar的CountDownTimer,重启应用时继续进度条【英文标题】:CountDownTimerwithProgressBar,continuingprogressbarwhenrestartingtheapp【发布时间】:2022-01-0922:32:13【问题描述】:我有一个显示CountdownTimer进度的ProgressBar。ProgressBar工作除了当... 查看详情

使用 Java 上传文件(带进度条)

】使用Java上传文件(带进度条)【英文标题】:FileUploadwithJava(withprogressbar)【发布时间】:2010-09-2006:17:55【问题描述】:我对Java非常陌生,而且我主要是边学边自学,所以我开始构建一个小程序。我想做一个可以从本地磁盘中... 查看详情

带有旋转图标的 Android 材质按钮

】带有旋转图标的Android材质按钮【英文标题】:Androidmaterialbuttonwithspinningicon【发布时间】:2022-01-1113:34:03【问题描述】:是否可以将旋转图标(如进度条)作为材质按钮图标​​?谢谢。【问题讨论】:【参考方案1】:您可以... 查看详情

springmvc带进度条的多文件上传

1、关于文件上传进度条的实现在说SpringMVC文件上传尤其是带滚动条之前先用servlet做一个简单的文件上传并返回进度信息这样的功能。(1)需要两个包:commons-fileupload-1.3.1.jarcommons-io-1.4.jar上面这两个包是Apache推出的... 查看详情

圆角矩形精度条(代码片段)

publicclassDownProgressBarextendsView/***注意:*1,整个精度条的宽度MaxProgress;*2,当前精度条的宽度currentProgress;*4,背景颜色*5,进度颜色*6,文字,文字颜色,大小**@paramcontext*/privateintmMaxProgress;privateintmProgress;privateintmBackgro 查看详情

markdown拉链带进度条(代码片段)

查看详情

css3彩色进度条加载动画带进度百分比

在线演示       本地下载 查看详情