Skip to content

Instant messaging app with a QtWidgets GUI and client-server architecture, enabling real-time text communication over a network.

License

Notifications You must be signed in to change notification settings

LT2H/QWidgetsChat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QtWidgets Instant Chat Application (Client/Server)

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.

image

image

image

Features

  • 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.

Technical Details

  • 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

Getting Started

  1. Clone this repository:

    git clone https://github.com/LT2H/QWidgetsChat.git
    
  2. Open the Server and Client projects in Qt Creator via their CMakeLists.txt files.

  3. Run the Server and Client.

License

  • This repository is licensed under Apache 2.0 (see included LICENSE.txt file for more details)

About

Instant messaging app with a QtWidgets GUI and client-server architecture, enabling real-time text communication over a network.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published