0

QtCreatorでQtプロジェクトに取り組んでいます。プロジェクトにはいくつかのUI要素を含むダイアログボックスがあり、そのうちのいくつかはユーザーの操作に応じて有効/無効にする必要があります。(つまり、ユーザーがラジオボタンを選択した場合は、フォームフィールドを有効にする必要があります。)

Qt Designerツールを使用して新しい信号/スロット接続を追加したり、既存の接続を削除したりすると、プレビューに変更が正しく表示されます。ただし、アプリケーションをコンパイルすると、ウィンドウは以前とまったく同じように動作します。

ui_WindowName.hQtDesignerが作成するファイルをチェックしてこれを調査しました。関数の終わり近くにsetupUi一連のconnect()呼び出しがあります。これらのconnect()呼び出しは、今日以前に存在したスロットとシグナルと一致していますが、それ以降にQtDesignerを介して行った変更を反映していません。

ファイルを手動で変更するui_WindowName.hと、UIが機能します。しかし、もちろん、Qt Designerから何かをチャンスにしようとすると、私の変更は上書きされます。

QtCreatorを終了して再度開くと、デザイナーは変更されたスロット/信号接続を表示しますが、自動生成されたコードは変更を反映しません。

私は何か間違ったことをしていますか?Designerが保存しているキャッシュを削除する方法や、同期を取り戻す方法はありますか?

ありがとう!

(もう1つ:私はスタンドアロンのQt Creatorを使用しており、Visual Studioで開発しようとはしていません。Webで見つけた他の同様の問題は、自動化をサポートしていないVisualStudioで開発している人からのものだけでした。信号/スロットのもの。)

4

1 に答える 1

3

いつものように、答えは気づけば明らかです。

作業の途中でプロジェクトを移動しました。プロジェクトの場所を追跡する .pro.user ファイルがあります。気づかずに、残りのファイルと一緒に移動しました。

その結果、私はプロジェクトの 1 つのコピーを編集し、もう 1 つのコピーを実行していました。

教訓: Qt プロジェクトを移動する場合は、忘れずに .pro.user ファイルを更新してください。

(または、単に削除することもできます。Qt Creator は、プロジェクトを開いたときに再作成するように求めます。)

于 2013-01-18T04:12:40.407 に答える