私はお互いにメッセージをやり取りする2つのプロセスを持っています。プロセス A は、プロセス B にメッセージを送信する通常の (つまり、qt 以外の) プログラムです。プロセス B は、受信したメッセージをテキスト ボックスに表示する QT GUI アプリケーションです。
QPlainTextEdit から継承し、タイマーが切れたときにパイプからメッセージを読み取り、テキスト ボックスに追加するカスタマイズされたウィジェット (ShowMessages と呼ばれる) を作成しました。コードは実際にはこのように設計されているわけではありませんが (かなり悪い設計だと思います)、単純にするためです。理由はわかりませんが、qt-designer を使用してフォームを作成している間、プロセス A をシャットダウンすることはできません。
問題は、qt デザイナーを使用している間 (つまり、ShowMessages ウィジェットを選択してウィンドウ内に配置している間)、デザイナーにいる場合でも、ウィジェットがメッセージを表示し始めることです。この機能は優れていますが、問題は、フォームを保存すると、既に存在するメッセージが .ui ファイルに保存され、プロセス B を開始したときに不適切な動作が発生することです (プロセスが作成フェーズ中に受信したメッセージを表示し始めるため) .
プロセス B の開始直後にテキスト ボックスを消去することもできましたが、メッセージが .ui ファイルに存在しないようにする方がはるかに優れていると思います。私が望むのは、ウィジェット用に次のようなコードを記述できるようにすることです。
if <I'm not in the designer>
timer = QtCore.QTimer(self)
QtCore.QObject.connect(timer, QtCore.SIGNAL("timeout()"), self, QtCore.SLOT("on_timer()"));
timer.start(2000)
私がデザイナーにいるかどうかを知るためのqt関数はありますか? デザイナー コードとランタイム コードを区別することは「悪い」ことだと思いますか?
(間違いは申し訳ありませんが、英語は私の母国語ではありません)