메시지를 서로 분리하는 두 개의 프로세스가 있습니다. 프로세스 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 함수가 있습니까? 디자이너와 런타임 코드를 구별하는 것이 "나쁘다"고 생각합니까?
(실수 미안하지만, 영어 내 기본 언어가 아닙니다)