QT 내 양식 개체 생성, 해당 양식에 액세스하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1809810

  •  05-07-2019
  •  | 
  •  

문제

특정 텍스트 상자 메시지를 변경하려고합니다. 내 출력이 표시됩니다.

이것이 내 tcpclient ()에있는 것입니다.

#include "form2.h"....string recvMSG = "random";    
QString s1 = QString::fromLocal8Bit(recvMSG.c_str());

182 :: Form2 :: ChangeOutput (S1);

within my form2.h I have:

...
void Form2::changeOutput(QString &s)
{
    output_box.setText(s1);
}
...

내 메인 :

#include <qapplication.h>
#include "form2.h"
#include <string.h>     /* for memset() */
#include <iostream>
#include <stdlib.h>     /* for atoi() and exit() */

int main( int argc, char ** argv )
{
    QApplication a( argc, argv );
    Form2 w;
    w.show();
    a.connect( &a, SIGNAL( lastWindowClosed() ), &a, SLOT( quit() ) );
    return a.exec();
}

이제 W.ChangeOutput (S1)을 호출해야한다는 것을 알고 있습니다. 그러나 문제는 내 tcpclient.cpp 내에서 W가 선언되지 않았다는 것입니다.

QT는 Main () 기능을 만들었습니다. 이 문제를 해결하는 방법을 잘 모르겠습니다. TCPClient.cpp 내에서 W.ChangeOutput (S1)을 호출하고 싶습니다.

이것은 내가 얻는 오류입니다. tcpclient.cpp : 182 : 오류 : 멤버 함수 '가상 void form2 :: ChangeOutput (std :: string)'을 호출 할 수 없습니다

감사.

도움이 되었습니까?

해결책

문제를 올바르게 이해하면 적절한 "QT-way"는 TCP 클라이언트가 메시지를 수신 할 때 신호를 보내는 다음 주 기능에서 해당 신호를 ChangeOutputs 슬롯에 연결하는 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top