qtデザイナで作成されたフォームから継承する最も好ましい方法は何ですか?Qtのフォームから継承する最善の方法
答えて
フォーム自体を継承する良い直接的な方法はありません。フォーム用に作成されたクラスを継承する方がよいでしょう。
1)基本クラスの子UI(一部のコンテナ)
のプレースホルダを指定します。あなたも可能である他のいくつかのフォームを、追加したい場合はclass testBase : public QWidget
{
Q_OBJECT
public:
testBase (QWidget *parent = 0);
~testBase();
protected: // here was private
Ui::testBaseClass baseUi; // rename this
};
testBase ::testBase (QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
}
も、あなたには、いくつかの追加作業を行う必要があります
2)ウィザードで子フォームを作成します。基本クラスを祖先に渡さないでください。ウィザードでは、QWidgetから継承すると言ってください。
3)派生クラスのフォームを作成した後、派生したものをあなたのベースになるように書き直します。コンストラクタを変更 、ラインui.setupUi(this)
はまた、派生クラスは、ベースクラスの形式を変更しないことに注意ui.setupUi(baseUi.placeholder)
class testDerived : public testBase
{
Q_OBJECT
public:
testDerived (QWidget *parent = 0);
~testDerived();
private:
Ui::testDerivedClass ui;
};
testDerived::testDerived(QWidget *parent)
: testBase (parent)
{
ui.setupUi(baseUi.placeholder);
}
に変更する必要があり、それを拡張します。フォームコンストラクタで基本フォームに項目を追加または削除することはできませんが、プレースホルダとして指定したコンテナは派生クラスのフォームデータで埋められます。
QtCreatorでも継承アプローチをサポートしています。それは、それ自体から継承するのではなく、QtDesignerが生成したフォームクラスから継承します。 –
まあ、あなたはそのクラスを継承するかもしれません。それは悪いアプローチです。それは名前のあいまいさや他の厄介なものを引き起こすでしょう。決して固定されていません - 良い方法はありません – Raiv
あいまいさはどれですか?私はそれが一般的に継承よりも壊れやすい方法を見ません。 http://doc.qt.nokia.com/latest/designer-using-a-ui-file.htmlも参照してください。 (btw、個人的に私はポインタからフォームへのアプローチを好む、私はあなたの主張に疑問を呈していた) –
- 1. NodeJS - mongo接続を継承する最善の方法
- 2. QWidgetから継承するQtプラグインを作成する方法
- 3. QObjectからのQT pimpl継承
- 4. Qt XML継承
- 5. 抽象クラス、継承、図形でprogrammを実行する最善の方法
- 6. フォームから継承するC#
- 7. Laravel 5のEloquent Model継承のための最善の方法は?
- 8. DbContextクラスから継承する方法
- 9. Deviseコントローラから継承する方法
- 10. baseComponentから継承する方法Angular2?
- 11. Qtプッシュボタンと継承
- 12. 継承によるプログラムの改善
- 13. 継承なしでBitmapImageの機能を実装する最善の方法は何ですか?
- 14. 新しいフォームを動的に作成し、Delphiの既存のフォームからフォームを継承する方法
- 15. C#子フォーム親フォームからコントロールを継承する
- 16. 基本フォームから継承されたフォームのコンポーネントへのアクセス
- 17. Visual Studioでフォーム間の変数を継承する方法
- 18. 継続的にロギングする最善の方法
- 19. DevExpressフォームの継承のバグ?
- 20. QObjectから継承した後のQt "signal undefined reference error"
- 21. C++ Qtの継承の基礎
- 22. TObjectListから継承する方法TObjectListから継承する代わりに<T>
- 23. C++の関数から継承したクラスを返す最も良い方法
- 24. build.gradleのsettings.gradleからメソッドを継承する方法
- 25. 元のテーブル定義からパラメータサイズを継承する方法は?
- 26. Angular2で別のモジュールからモジュールを継承する方法は?
- 27. 別のファイルからクラスを継承する方法は?
- 28. Qtアプリケーション用のWebユーザーインターフェイスを持つ最善の方法は?
- 29. ロバストなフォーム認証:これが最善の方法ですか?
- 30. Qt:継承されたスーパークラスからのinvokemethodからの不正な戻り値
あなたはあなたの質問 – SMK
を 'private'クラスの継承IMOで詳しく記述できますか? –