質問

どのように私は、このようなQtの4中QVectorまたはQPushButtonなどのウィジェットの動的な数のQComboBox(または他のコンテナクラス)を作るのですか?

私は私のウィンドウクラスのコンストラクタで次のように使用しました。

QVector<QComboBox*> foo; // Vector of pointers to QComboBox's

そして今、私は動的に変更できるコントロールのいくつかの数でそれを埋めるためにしたい:

for(int count = 0; count < getNumControls(); ++count) {
    foo[count] = new QComboBox();
}

私はこの答えを見つけようと時間を探してきました。 QtのフォーラムはQPtrListを作る言及しませんが、そのクラスはもはやQt4版に存在します。 私は後で配列形式のインデックスや.at()機能を使用して、それぞれからテキスト値を取得しようと思います。

私は本当に、宣言、初期化、および任意のQWidgetsの任意のデータ構造を取り込むの例いただければ幸いです(などQComboBoxQPushButtonを、。)

役に立ちましたか?

解決

ここにあなたが行く:)

#include <QWidget>
#include <QList>
#include <QLabel>
...
QList< QLabel* > list;
...

list << new QLabel( parent, "label 1" );
..
..

foreach( QLabel* label, list )  {
label->text();
label->setText( "my text" );
}

あなたは目的(コンテキストのために/クリーンアップ)あなたのウィジェットが親を持っていることをその重要なのは、ちょうど仕事に簡単な例を取得しようとしている場合。

この情報がお役に立てば幸いです。

他のヒント

foo[count] = new QComboBox();

これはFOOの大きさには影響しません。インデックスカウントの項目がすでに存在しない場合には、これは失敗します。 一back を参照してください、または<のhref = "のhttp://doc.trolltechリストの最後に項目を追加.COM / 4.4 / qvector.html#オペレータLT-LT」REL = "nofollowをnoreferrer">オペレータ<<、

QVector<QComboBox*> foo;
// or QList<QComboBox*> foo;
for(int count = 0; count < getNumControls(); ++count) {
    foo.push_back(new QComboBox());
    // or foo << (new QComboBox());
}

その後、値を取得します:

foreach (QComboBox box, foo)
{
  // do something with box here
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top