聊天程序:
QT实现的界面
网络的数据通信
服务器端:
建立用户UI
建立服务器socket
接受客户连接
为每个各户建立线程处理客户数据
设计界面
QMainWindow 增加:菜单,工具条,状态条
菜单:
QMenuBar
addMenu
QMenu
addAction
QMenuItem/QAction
构造器
菜单的响应
状态条
QStatusBar
chatServer
charServer.cpp
#include<QApplication>
#include “ServerWindow.h”
#include<QTextCodec>
int main(int args , char ** argv)
{
QApplication app(args , argv);
QTextCodec * codec=QTextCodec::codecForName(“utf-8”);
QTextCodec::setCodecForTr(codec);
ServerWindow sw;
return app.exec();
}
charServer.pro
TEMPLATE=app
SOURCES=charServer.cpp \
ServerWindow.cpp \
chatException.cpp \
ServerSocket.cpp \
ThAccept.cpp \
ThClient.cpp
HEADERS=ServerWindow.h chatException.hServerSocket.h ThAccept.h ThClient.h
CONFIG=release qt
QT=core gui
TARGET=charServer
ServerWindow.h
#ifndef SERVER_WINDOW_H
#define SERVER_WINDOOW_H
#include<QMainWindow>
#include<QWidget>
#include<QTextEdit>
#include<QMenuBar>
#include<QMenu>
#include<QAction>
#include<QStatusBar>
#include<QLabel>
#include “ThAccept.h”
#include<list>
#include “ThClient.h”
using namespace std;
class ServerWindow :public QMainWindow
{
Q_OBJECT
public:
static list<ThClient*>allusers;
private:
QTextEdit *info;
//菜单
QMenuBar * bar;
QMenu *mnuserver;
QAction *actstart;
QAction *actexit;
//状态条
QStatusBar *status;
QLabel *lbltip;
QLabel *lblresult;
QLabel *lbltim;
//接收线程
ThAccept thaccept;
public:</