どのように私は、ウィジェットのQVectorを作るのですか?
質問
どのように私は、このような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
の任意のデータ構造を取り込むの例いただければ幸いです(などQComboBox
、QPushButton
を、。)
解決
ここにあなたが行く:)
#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
}
所属していません StackOverflow