私は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_base
uiファイルを編集しています。これはですQWidget
。KXmlGuiWindow
(から派生した)のメインビューを表すだけでQMainWindow
、実行時にロードされます。
QDockWidget
では、フロート可能でドラッグ可能なをメインアプリケーションに追加するにはどうすればよいですか?それらを個別に設計し、UIに追加するのが最善のオプションですか?または、クラス全体を削除して、UIファイルを?によってロードされるオブジェクトをAEmpireView
直接表すようにすることもできます。KXmlGuiWindow
AEmpireClass
それとも私は何か明らかなことを見落としていますか?読んでくれてありがとう!