サードパーティのアプリケーションにプラグインするためのDLLの中にQtアプリケーションをラップしています。これらのサードパーティアプリケーションがQtアプリケーションを起動すると、サードパーティアプリケーションのツールチップツールチップが機能しなくなります。私がQtアプリケーションを閉じるとすぐに、彼らは再び働きます。非Qtアプリケーションと同じプロセスでQtアプリケーションを読み込むQt以外のアプリケーションのツールチップが破損する
Qt以外の実行可能ファイル(この場合はすぐに使用できるMFC MDIアプリケーション)とQtアプリケーション(DLLに変更したもの)を作成することでVisual Studioで問題を再現しました。 Iは、非Qtの実行にメニュー項目を追加し、そして次のようにイベントを扱う:
void MFCApp::OnFileLaunch()
{
QtApp qtApp;
qtApp.Launch();
}
QtAppクラスは(すべてでQtのAPIを公開し、起動しない)次のように実装されている:
int QtApp::Launch()
{
int argc = 0;
char *argv = 0;
QApplication a(argc, &argv);
MyMainWindow w;
w.show();
return a.exec();
}
Qtアプリケーションが表示されている間、非Qtアプリケーションは、ツールバーのツールチップ(およびSelect Allのキーボードショートカットなど)を除いて、完全に反応します。
私はこれがQtバグかもしれないと思っていますが、私の起動コードが間違っているかどうかをチェックしたいと思っていました。
私は途中でQt 4.5.2を使用しています。
ありがとうございました
返信いただきありがとうございます。別々のプロセス以外に、私は多くの選択肢があるのか分からないのですか?私はサードパーティのアプリケーションを変更することはできませんし、Qt DLLには正確に1つのQApplicationオブジェクトが必要です。私はそれがワームの缶であることに同意しますが、それは第三者アプリケーションの他のすべての出来事についてちょうどうまくいくようです。ありがとう。 – Robin