2017-09-10 5 views
-1

QBalloonTipクラスを使用して、QT 5.8.0のボタン用のツールチップを作成しようとしています。プライベートQt C++ APIを使用するには?

これまでに試したことは、デフォルトの引数を指定して、qsystemtrayicon_p.hのメソッドQBalloonTip::showBalloon(...)を変更することです。しかし、私のコードにヘッダqsystemtrayicon_p.hを含めても、コンパイルされたソースコードをリンクするときに問題があります。次のエラーが表示されます。

LNK2019: unresolved external symbol: "public static void QBalloonTip::showBalloon(...)"

ホープ誰もがこの前に直面しています。前もって感謝します。

+0

QBalloonTipから継承し、関連するメソッドをオーバーライドできます。 – JLev

+1

あなたがやろうとしていることは少しはっきりしていませんが、ライブラリのものと一致しない新しい関数を宣言するパラメータのタイプまたは数を変更するとします。 –

+0

これをチェックしてください:https://www.youtube.com/watch?v=X9JD8gKGZ00 – scopchanov

答えて

1

QtのプライベートAPIを使用するには、明示的.proファイルに含まれるようにしている:プライベートAPIは文書化にあなたを結ぶされていないよう

QT += widgets-private 

しかし、それを行うことは推奨されませんあなたが構築した特定のQtバージョンあなたのコードがGPLに準拠している場合は、むしろballoontipクラスのソースをアプリケーションにコピーするべきです。

さらに、すでにコンパイルされたライブラリにヘッダーを変更するだけでは問題が解決しません。これは単に不可能です。そのクラスから継承しようとするか、ソースをプロジェクトにコピーしてそこに変更してください。

+0

こんにちはフェリックス、私はすでにそれを試みたが、エラーが表示されます。パブリックメソッドを使用するために、QBalloonTipクラスをクラスの友人として追加しました。実際、最後にはヘッダファイルから何も修正していませんでした。このQBalloonTipはQSystemTrayIconクラスで使用されています。しかし、私はこのQBalloonTipクラスdirecltyを使いたいと思っていました。私はこの代替案をあきらめるだろうと思うが、私はこれにほぼ3週間を費やしてきた。私はScopchanovの解決策に行くでしょう。ありがとうございました –

+0

@JoelRuiz、ちょうど情報 - 友人としてクラスを追加すると、あなたのメンバーへのアクセスを与えることはありません。それはうまく動作します。友人クラスは、クラスのメンバーにアクセスし、友人として宣言されます。 – scopchanov

関連する問題