gpt4 book ai didi

c++ - 如何使用 QProgressBar

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:19:50 26 4
gpt4 key购买 nike

我正在尝试使用进度条 qt creator 作为电池图像,因此我需要能够控制进度条(使用一个名为 my_value 的变量,我将在之后更改该变量)。更准确地说,我希望能够从程序中设置进度条的值,并让它实际改变并出现在屏幕上。到目前为止,我很迷茫:-我在 .ui 文件中创建了一个名为 battery 的进度条。- 我没有更改头文件(自动生成)的任何内容,但它是这段代码:

#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

-这是我的 main.cpp 文件:

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

#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;
}

但是还是不行。有人能帮我吗 ?

非常感谢。

最佳答案

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

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

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

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()

希望对您有所帮助!

关于c++ - 如何使用 QProgressBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28015050/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com