私はQT(およびKDE)プログラムに取り掛かろうとしていて、KDE 4プログラムに埋め込まれてQDockWidgetいる.uiファイル(としてベース)にフロート可能でドラッグ可能なものを追加しようとしている問題にぶつかりました。QWidget
これはすべてKDevelop4が提供する基本テンプレートからのものであるため、何が起こっているのかは理解できますが、それを変更する最善の方法がわかりません。
取引は次のとおりです。main.cppは新しいAEmpireウィンドウを生成し、ショー全体を開始します。
AEmpire::AEmpire()
: KXmlGuiWindow(),
m_view(new AEmpireView(this)),
m_printer(0)
{
// tell the KXmlGuiWindow that this is indeed the main widget
setCentralWidget(m_view);
setupActions();
setupGUI();
}
AEmpireView(this)(から継承する) newが作成QWidgetされ、m_viewに割り当てられると、このコンストラクターは次のように呼び出されます。
AEmpireView::AEmpireView(QWidget *)
{
ui_aempireview_base.setupUi(this);
settingsChanged();
setAutoFillBackground(true);
}
したがって、QT Designerで自分のプログラムのUIを編集しているときは、実際にはAEmpireView_baseuiファイルを編集しています。これはですQWidget。KXmlGuiWindow(から派生した)のメインビューを表すだけでQMainWindow、実行時にロードされます。
QDockWidgetでは、フロート可能でドラッグ可能なをメインアプリケーションに追加するにはどうすればよいですか?それらを個別に設計し、UIに追加するのが最善のオプションですか?または、クラス全体を削除して、UIファイルを?によってロードされるオブジェクトをAEmpireView直接表すようにすることもできます。KXmlGuiWindowAEmpireClass
それとも私は何か明らかなことを見落としていますか?読んでくれてありがとう!