QT开发中文网

qt进度条添加秒数到进度条显示中

您可以使用QTimer和QProgressBar来实现这个功能。具体步骤如下:

1.在界面中添加一个QProgressBar和一个QLabel,用于显示秒数。

2.创建一个计时器对象,并将其连接到一个槽函数上。在槽函数中更新进度条的值,并更新标签以显示已经过去的时间。

3.启动计时器并让它运行。

以下是示例代码:

#include <QtWidgets>

class MyWidget : public QWidget
{
public:
    MyWidget(QWidget *parent = nullptr) : QWidget(parent)
    {
        // 创建进度条和标签
        progressBar = new QProgressBar(this);
        progressBar->setRange(0, 100);
        progressBar->setValue(0);

        timeLabel = new QLabel(this);
        timeLabel->setText("Time: 0s");

        // 布局
        QVBoxLayout *layout = new QVBoxLayout(this);
        layout->addWidget(progressBar);
        layout->addWidget(timeLabel);

        // 创建计时器
        timer = new QTimer(this);
        connect(timer, &QTimer::timeout, this, &MyWidget::updateProgress);

        // 启动计时器
        timer->start(1000); // 每一秒触发一次

        // 设置窗口大小
        setFixedSize(200, 100);
    }

private:
    QProgressBar *progressBar;
    QLabel *timeLabel;
    QTimer *timer;

    int elapsedSeconds = 0;

    void updateProgress()
    {
        // 更新进度条
        progressBar->setValue(elapsedSeconds % 101);

        // 更新标签
        timeLabel->setText(QString("Time: %1s").arg(elapsedSeconds));

        // 增加秒数
        elapsedSeconds++;
    }
};

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

在这个示例中,计时器每一秒触发一次槽函数updateProgress()。槽函数会更新进度条和标签,并增加秒数。进度条的值是秒数模101,这样可以让它在100%时重新开始。

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

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

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

联系我们

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

微信号:3007537140

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

关注我们
x

注册

已经有帐号?