首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用QProgressBar

如何使用QProgressBar
EN

Stack Overflow用户
提问于 2015-01-19 05:32:41
回答 1查看 16.1K关注 0票数 2

我正在尝试使用进度条qt创建器作为电池图像,因此我需要能够控制进度条(使用一个名为my_value的变量,稍后我将更改该变量)。更准确地说,我希望能够从程序中设置进度条的值,并将其实际更改并显示在屏幕上。到目前为止,我相当迷惑:-I在.ui文件中创建了一个名为bar的进度条。详细说明:我没有对头文件(自动生成的)做任何修改,但修改了这段代码:

代码语言:javascript
复制
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H

-Here是我的main.cpp文件:

代码语言:javascript
复制
include "mainwindow.h"
#include <QApplication>
#include <QProgressBar>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QProgressBar battery;
    int my_value=10;
    battery.setValue(my_value);
    battery.valueChanged(my_value);
    MainWindow w;
    w.show();
    return a.exec();
}

我尝试了setValue()和valueChanged(),但它们都不起作用,所以我尝试使用mainwindow.cpp

代码语言:javascript
复制
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QProgressBar>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->battery->setValue(10);
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

但它仍然不起作用。有人能帮帮我吗?

非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2015-01-19 06:20:07

您不需要在main中创建QProgressBar,它会在您调用new Ui::MainWindow()时自动创建。

void valueChanged()是一个信号,所以您不应该调用它,而是将插槽连接到它。如果你不熟悉Qt的信号/插槽系统,我建议你阅读这个页面:http://doc.qt.io/qt-5/signalsandslots.html

首先,您应该在MainWindow构造函数中正确设置进度条:

代码语言:javascript
复制
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{        
    ui->battery->setOrientation(Qt::Horizontal);
    ui->battery->setRange(0, 100); // Let's say it goes from 0 to 100
    ui->battery->setValue(10); // With a current value of 10

    ui->setupUi(this);
}

然后,您应该能够创建自己的信号,并将它们连接到void QProgressBar::setValue(int)以更改进度条值。如果在作用域内,还可以直接从正在进行处理的位置调用setValue()

希望它能帮上忙!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28015050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档