1

問題があるようです。目的:に動的に追加QTextEditしたい、さまざまなオブジェクトQMainWindow間で分割したいデータがたくさんあります。QTextEdit私はQtCreatorによって生成されたcentralWidgetものを調べて掘り下げてみましたが、関心のあるオブジェクトの親がの中央ウィジェットであることがわかりました。したがって、私はこのようなものを試しました:ui->setupUi(this);QMainWindow

this->m_vecTextEdits.push_back( new QTextEdit(this->centralWidget()) );

ここで、' this'はQMainWindowです。QTextEditこれらをに追加しQMainWindow、後で削除したいだけです。また、オブジェクトのジオメトリによって定義されたプロパティで new QTextEdit(this)表示されることを期待してみましたが、運が悪かったです。QMainWindow

setCentralWidgetがそれでうまくいくが、オブジェクトが全体を消費して既存のウィジェットへのアクセスを制限QTextEditしたくない場合。QMainWindow

QTextEditそのため、基本的に、既存centralWidgetのウィジェットにウィジェットを追加QMainWindowしてウィンドウに表示したり、削除したりする方法についてアドバイスが必要です。

4

2 に答える 2

1

ウィジェットオブジェクトを作成するだけでは不十分です。また、それらをレイアウトオブジェクトに追加する必要があります。次のようなものを試してください:

QBoxLayout * bl = new QBoxLayout(centralWidget());
QTextEdit * t = new QTextEdit;
bl->addWidget(t);
于 2011-09-04T15:41:29.880 に答える
1

複数のQTextEditを追加して、常駐するQListWidget(インデックスプロパティ)を使用して、多数のQTextEditウィジェットを切り替えることができるようにしたかったのです。

QStackedWidgetの代わりにを配置しQTextEdit、それにすべてのを追加することができますQTextEdit。 常に1つのテキスト編集のみが表示されますが、スロットに
信号を接続することで自動的に切り替えることができ、リスト内の選択したアイテムのインデックスと同じままになります。currentRowChanged(int)QListWidgetsetCurrentIndex(int)QTextEdit

コンテナm_vecTextEditsQStackedWidgetも置き換えられます。

于 2011-09-04T18:39:13.447 に答える