3

QGridLayout を含む QWidget があり、QGridLayout にはいくつかの QPushButtons が含まれています。これらはすべてプログラムで生成されます。コードの後半 (レイアウトが定義されている場所とは別) で、レイアウト内の特定の行/列位置にプッシュボタンを追加できるようにする必要があります。

私は使用してみました:widget->layout()->addWidget(button, row, col)レイアウトを参照してボタンを追加します。ただし、widget->layout()一般的な QLayout アイテムのみを返すため、行と列の値を指定できません。名前でレイアウトを知らなくても、特定のウィジェットから QGridLayout を参照する方法はありますか? 違いがある場合は、Qt 4.8 を使用しています。

4

1 に答える 1

5

いつでも次のようにキャストできQGridLayout*ますdynamic_cast

auto gridLayout = dynamic_cast<QGridLayout*>(widget->layout());

widget->layout()あなたがあなたを指していると確信しQGridLayoutているなら、チェックする必要はなく、使用することができますstatic_cast。それ以外の場合は、 を確認gridLayoutしてくださいnullptr

于 2015-05-15T18:52:55.027 に答える