This is a simple instant messaging application built with QtWidgets. It demonstrates a basic client-server architecture, allowing users to send and receive text messages in real-time over a network. The client communicates with the server to exchange messages.
- Real-time messaging: Multiple clients can send and receive messages instantly through the server.
- Client-server communication over TCP/IP: Clients connect to the server via the server’s IP address.
- Chat window with input and output areas: The user interface includes a text area to display chat messages and an input box to type messages.
- Message history: The chat window displays the history of messages.
- Client status management: Clients can change their online status (None, Availabe, Away, Busy).
- Server events broadcasting:
- Client typing detection: The server broadcasts when a client is typing.
- Client connection/disconnection: The server detects when a client connects or disconnects and broadcasts the event to other clients.
- Client name change: The server detects when a client changes their username and notifies other clients.
- Server-initiated messages: The server can send messages to any connected clients.
- Language: C++
- Standard: C++17
- Dependencies: Qt 6.2+ (QtWidgets, QtNetwork, Qt's signal/slot)
- Build System: CMake
- IDE: QtCreator
- Platform: Windows, Linux
- Communication Protocol: TCP/IP (via QTcpSocket and QTcpServer)
- UI Framework: QtWidgets
- Socket Communication: QTcpSocket for client-server communication
-
Clone this repository:
git clone https://github.com/LT2H/QWidgetsChat.git
-
Open the Server and Client projects in Qt Creator via their
CMakeLists.txtfiles. -
Run the Server and Client.
- This repository is licensed under Apache 2.0 (see included LICENSE.txt file for more details)


