QT开发中文网

qt手动创建一个进度条控件 并每秒进度增加1

可以使用Qt提供的QProgressBar类来手动创建进度条控件,并通过 QTimer 类的定时器来更新进度值。

示例代码如下:

#include <QProgressBar>
#include <QTimer>

class MyWidget : public QWidget
{
public:
    MyWidget(QWidget *parent = nullptr) : QWidget(parent)
    {
        progressBar = new QProgressBar(this);
        progressBar->setMinimum(0);
        progressBar->setMaximum(100);

        timer = new QTimer(this);
        connect(timer, &QTimer::timeout, this, &MyWidget::updateProgress);
        timer->start(1000); // 定时器每秒触发timeout信号

        QVBoxLayout *layout = new QVBoxLayout;
        layout->addWidget(progressBar);
        setLayout(layout);
    }

private:
    QProgressBar *progressBar;
    QTimer *timer;
    int progressValue = 0;

private slots:
    void updateProgress()
    {
        if (progressValue > 100)
        {
            progressValue = 0;
        }
        progressBar->setValue(progressValue++);
    }
};

以上代码创建了一个继承自QWidget的MyWidget类,该类有一个QProgressBar成员变量和一个QTimer成员变量,以及一个updateProgress函数。在构造函数中,设置了进度条的最小值和最大值,启动了定时器并将进度条添加到布局中。在updateProgress函数中,如果当前进度值超过了最大值,则重置为最小值,然后通过setValue函数更新进度条的进度值。每隔一秒钟就会触发一次定时器,进而更新进度条的进度值。

使用该控件只需要在主程序中创建MyWidget对象即可:

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MyWidget w;
    w.show();
    return a.exec();
}

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=1136

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?