QT 내 양식 개체 생성, 해당 양식에 액세스하는 방법은 무엇입니까?
문제
특정 텍스트 상자 메시지를 변경하려고합니다. 내 출력이 표시됩니다.
이것이 내 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 슬롯에 연결하는 것입니다.
제휴하지 않습니다 StackOverflow