14

ロジックレイヤーのループからビューレイヤーの QProgressBar を更新したい場合 (各反復がプログレスバーを更新するなど)、それを行う適切な方法は何ですか?

ありがとう

4

2 に答える 2

7
class LogicClass : public QObject
{
    Q_OBJECT
public:
    explicit LogicClass(QObject *parent = 0);
    int max(){ return 100; }
    int min(){ return 0; }
    void emit50(){ emit signalProgress(50); }

signals:
    void signalProgress(int);

public slots:

};


MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    LogicClass logic;

    ui->progressBar->setMaximum( logic.max() );
    ui->progressBar->setMinimum( logic.min() );
    connect( &logic, SIGNAL( signalProgress(int) ), ui->progressBar, SLOT( setValue(int) ) );

    logic.emit50();

}
于 2013-01-09T08:13:28.693 に答える
5

QProgressBarには、最小値と最大値、および現在の値を設定するために使用されるいくつかのパブリックスロットがあります。現在の値を増やすと、プログレスバーが移動します。QProgressBarの「voidsetValue(int value)」スロットに接続されているロジックレイヤーから信号を発信できます。 http://doc.qt.digia.com/qt/qprogressbar.html

于 2013-01-09T07:54:16.047 に答える