ÔÚ¸øÒ»¸öÓÃgsoap ʵÏÖcoopertative µÄXML editorдһ¸öinstant message¡£
GUIÓõÄÊÇqt designer
ÆäʵÊÇÎÒµÚÒ»´Î±à³Ì£¬Ò»²½²½ÔÚÃþË÷¡£
ÏÖÔÚµÄÎÊÌâÊÇ£¬ÎÒÏëÓÃQStringListModelÀ´ÊµÏÖIDµÄÏÖʵ£¬ µ«Êǿͻ§¶ËÒ»Ö±±¨´í£º
error C2061: syntax error : identifier 'QStringListModel'
errror C2065: 'nameModel' : undeclared identifier
error C2065: 'QStringListModel' : undeclared identifier
error C2227: left of '->setStringList' must point to class/struct/union/generic type
ÏÂÃæÊÇÎÒclient¶ËµÄ³ÌÐò£º ºìÉ«²¿·Ö¾ÍÊDZ¨´íµÄµØ·½
ÎÒÔÚclient.hÒ²¼ÓÁË QStringListModel nameModel,µ«ÊÇ»¹ÊÇÒ»Ö±ÊÇundeclared identifier
Ï£Íû´ó¼ÒÄܹ»¸øÎÒµãÒâ¼û£¬ÈÃÎÒ¿ÉÒÔÒ»²½²½½â¾öÕâ¸öÎÊÌâ¡£
void Client::on_getClientIDList(unsigned int NodeID)
{
LOG_TRACE("Client::on_getClientIDList start");
SAFESOAPCALL_START(return;)
QStringList nameList;
nameList.clear();
std::list<std::string> ClientList;
SAFESOAPCALL_OKONLY(getClientIDList(clientID, NodeID,ClientList),return;)
QList<std::string> clients= QList<std::string>::fromStdList(ClientList);
for (QList<std::string>::iterator it = clients.begin();
it!= clients.end(); it++)
{ nameList.append((*it).c_str());
}
QStringListModel *nameModel = new QStringListModel();
nameModel->setStringList(nameList);
ui.listView->setModel(&nameModel);
}
int Client::updateClients(std::list<std::string> ClientList)
{
LOG_TRACE("Client::updateClients start");
unsigned int NodeID;
on_getClientIDList(NodeID);
return SOAP_OK;
}
void Client::sendMessage()
{
LOG_TRACE("Client::sendMessage start");
SAFESOAPCALL_START(return;)
unsigned int NodeID;
std::list<std::string> ClientList;
QDialog* dialog = new QDialog(this);
ui_ChatDialog.setupUi(dialog);
dialog->show();
if (dialog->exec())
{
SAFESOAPCALL_OKONLY(getClientIDList(clientID, NodeID,ClientList),return;)
QString Message= ui_ChatDialog.inputTextEdit->toPlainText();
ns__Message NewMessage;
NewMessage.m_message= Message.toStdString();
NewMessage.m_clientID=clientID;
m_Proxy.sendMessage(ClientList,NewMessage,NULL);
}
emit processMessages();
emit readMessage();
}
void Client::readMessage()
{
LOG_TRACE("Client::readMessage start");
SAFESOAPCALL_START(return;)
std::list<std::string> ClientList;
struct ns__Message message;
SAFESOAPCALL_OKONLY(readMessage(ClientList,message),return;)
QList<std::string>clients=QList<std::string>::fromStdList(ClientList);
for (QList<std::string>::iterator it =clients.begin(); it != clients.end(); it++)
{ if ((*it) != clientID)
return;
else
{
QDialog* dialog = new QDialog(this);
ui_ChatDialog.setupUi(dialog);
dialog ->show();
ui_ChatDialog.showTextEdit->setReadOnly(true);
if (dialog ->exec())
{
SAFESOAPCALL_OKONLY(readMessage(ClientList,message),return;)
ui_ChatDialog.showTextEdit->
setText((*message.m_clientID.c_str())+"says"+(*message.m_message.c_str()));
}
}