0

私は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ファイルを編集しています。これはですQWidgetKXmlGuiWindow(から派生した)のメインビューを表すだけでQMainWindow、実行時にロードされます。

QDockWidgetでは、フロート可能でドラッグ可能なをメインアプリケーションに追加するにはどうすればよいですか?それらを個別に設計し、UIに追加するのが最善のオプションですか?または、クラス全体を削除して、UIファイルを?によってロードされるオブジェクトをAEmpireView直接表すようにすることもできます。KXmlGuiWindowAEmpireClass

それとも私は何か明らかなことを見落としていますか?読んでくれてありがとう!

4

1 に答える 1

1

QDockWidget のコンテンツを個別の UI ファイルとして設計します。次に、それらを作成し、AEmpire コンストラクターの QDockWidgets に貼り付けます。

于 2009-02-24T17:06:06.593 に答える