2016-06-02 1 views
0

workspaceという名前のUiデザイナオブジェクトを作成しました。というカスタムクラスに昇格されたmyFormというオブジェクトがあります。 他のクラスのオブジェクトmyFormにアクセスしたいのですが失敗します。 Workspaceメンバ関数の定義では、私はui->myFormを通してmyFormにアクセスします。どうすれば他のクラスにアクセスできますか?QT5 UIデザイナーでオブジェクトにアクセスするには?

+2

最小限の例を具体的に示してください。私はちょうどあなたの問題が何かを推測することができます。あなたのUIベースのクラスの外からフォームにアクセスしたいのであれば、UIはデフォルトではプライベートであることを覚えておく必要があります。 uiベースのクラスの外部からui要素に直接アクセスすることは、例えば、 (一般的に言えば)本当に悪い考え方(設計上のもの)です。 – OnWhenReady

答えて

2

uiは一般にプライベートなので、直接アクセスすることはできません。

しかし、ui->myFormを返すゲッター関数(CustomForm *myForm())をWorkspaceクラスに追加することができます。

+0

ありがとう、それは私を助ける – Asuka

+0

OnWhenReadyの[コメント](http://stackoverflow.com/questions/37585269/qt5-how-to-access-object-in-ui-designer/37585912?noredirect=1#comment62657202_37585912)もありますあなたが一般的に子ウィジェットを公開したくないので、心に留めておきましょう。子ウィジェットに直接アクセスする必要があると、ソフトウェア設計上の欠陥の兆候となります。 –

関連する問題