2014-11-21 3 views
0

QtCreator에서 Qt5 UI 응용 프로그램을 만들었습니다. PlainTextEdit이있는 MainWindow와 그리기 작업에 사용되는 "Canvas"라는 사용자 정의 위젯으로 구성됩니다. 이제 PlainTextEdit은 읽기 전용으로 설정되며 캔버스 위젯에서 발생할 수있는 일부 상태 메시지의 로그 창으로 사용해야합니다. 이를 위해 MainWindow에서 PlainTextEdit에 텍스트를 추가하는 "로그"메소드를 만들었습니다.다른 위젯에서 MainWindow의 텍스트 상자에 액세스

그러나 캔버스 위젯 내에서 텍스트 필드에 액세스하는 방법을 찾을 수 없습니다. Canvas의 상위 위젯을 얻으려고했지만 어떻게 든 실패했습니다. MainWindow 클래스를 싱글 톤으로 바꾸어서 인스턴스를 얻으려고했으나 작동하지 않는 것 같습니다.

그래서 모든 위젯에서 전역으로 사용할 수있는 로그 창을 만드는 방법에 대한 팁은 무엇입니까?

+0

"어떻게 든 실패했습니다", "작동하지 않는 것"은 무엇이 잘못되었는지에 대한 매우 모호한 설명입니다. 당신은 더 구체적 일 수 있습니까? 싱글 톤에 관해서 : MainWindow 생성자를 실행할 때 'this'를 저장하고 다른 모든 것들이 평상시와 같이 작동하도록하십시오 (즉, 실수로 MainWindow의 두 번째 인스턴스를 만들지 않도록하십시오). – such

+0

'PlainTextEdit' 텍스트를 다른 '정적'멤버에 저장하려고 생각 했습니까? 그렇게하면'MainWindow' 인스턴스없이 텍스트를 얻을 수 있습니다. 또 다른 옵션은'MainWindow' 클래스를'Canvas' 위젯의 부모로 만드는 것입니다. 이를 수행 할 수있는 많은 방법이 있습니다. – rhodysurf

+0

고마워, 지금 당장! – snorge

답변

관련 문제