我有兩個互相傳遞信息的進程。 過程A是向過程B發送消息的正常(即非qt)程序。過程B是一個QT GUI應用程序,將接收到的消息顯示在文本框中。區分設計器和運行時代碼
我創建了一個自定義的窗口小部件(稱爲ShowMessages),它繼承自QPlainTextEdit,並在計時器到期時從管道讀取消息,並將它們附加到文本框中。代碼並不是真的這樣設計的(我認爲這會是非常糟糕的設計),但這只是爲了使事情變得簡單。 由於我不會說的原因,當我使用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函數來知道我是否在設計器中?你認爲區分設計者和運行時代碼是「壞」嗎?
(對不起,我的錯誤,但英語不是我的主要語言)