質問

私は問題を抱えているようです。目的:動的に追加したい QTextEditQMainWindow, 、私はさまざまなものの中で分割したい多くのデータを持っています QTextEdit オブジェクト。私は見てきました centralWidget そして、いくつかを掘り下げました ui->setupUi(this); QT作成者によって生成され、関心のあるオブジェクトの親が中央ウィジェットであることを発見しました QMainWindow. 。したがって、私はこのようなことを試しました:

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

どこ 'this' それは QMainWindow. 。これらを追加したいだけです QTextEditQMainWindow 後でそれらを削除します。私も試しました new QTextEdit(this) それがに表示されることを願っています QMainWindow オブジェクトのジオメトリによって定義されたプロパティは、運がありません。

もし私が setCentralWidget のそれである QTextEdit それが機能するよりもですが、私はオブジェクトが全体を消費したくありません QMainWindow 既存のウィジェットへのアクセスを制限します。

だから私は基本的にどのように追加できるかというアドバイスが必要です QTextEdit 既存のウィジェット centralWidgetQMainWindow そして、それらを窓に現れて削除します。

役に立ちましたか?

解決

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

あなたはaを置くことができます QStackedWidget あなたの代わりに QTextEdit, 、すべてを追加します QTextEditそれに。
テキストエディットの1つだけが常に表示されますが、信号を接続することで自動的に切り替えることができます currentRowChanged(int) あなたの QListWidget スロットに setCurrentIndex(int) そのため QTextEdit リスト内の選択したアイテムのインデックスと同じように留まります。

QStackedWidget コンテナm_vectexteditsにも置き換えます。

他のヒント

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

QBoxLayout * bl = new QBoxLayout(centralWidget());
QTextEdit * t = new QTextEdit;
bl->addWidget(t);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top