0

私はQTの使用に不慣れで、C++には比較的慣れていません。コンピューターのすべてのドライブ文字を保持するドライブと呼ばれるベクトルがあります。私はdrives.size();であるnoDrivesと呼ばれるintを持っています。QT Designer 9のプログレスバーをフォームに設定しました。これを使用して、すべてを非表示に設定します。

   ui.driveLabel1->setVisible(false); 

forループでバーを表示するように設定する方法を忘れてしまいました。たとえば、intドライブ= 4なので、progressBar0-4を表示に変更する必要があります。これが私がこれまでに持っているものです。

    std::vector<std::string> drives = DriveFinder();
    int noDrives = drives.size();
    for (int i = 0 ; i < noDrives ; i++){
    ui.driveBar1->setVisible(false);
    }

ループを回るたびに、次のdriveBarをオンにする必要があります。

4

1 に答える 1

1

私があなたの質問を正しく理解している場合:

switch( i )
{
 case 1: ui.driveBar1->setVisible(false); break;
 case 2: ui.driveBar2->setVisible(false); break;
 case 3: ui.driveBar3->setVisible(false); break;
 ...
}

または

std::vector<QProgressBar*> Bars (10);
Bars[0] = ui.driveBar1;
Bars[1] = ui.driveBar2;
...

それで...

Bars[i]->setVisible(false);
于 2012-10-09T04:38:26.067 に答える