Skip to main content

A simple and lightweight word processor written in qt. معالج نصوص بسيط وخفيف مكتوب بمكتبة qt.

Project description

Kitab — كتاب

Screenshot 2026-06-26 195732

(النص العربي في الاسفل)

A lightweight word processor built with PySide6 (Qt6).
A simple alternative to LibreOffice Writer and Microsoft Word.
Saves documents in .ktb format and exports to PDF.

Features

Feature Description
Rich text editing Bold, italic, underline, strikethrough, color, font family, font size, clear formatting
Text alignment Left, center, right
Find & Replace Case-sensitive search with "replace" and "replace all"
Tables Insert tables with configurable rows, columns, and width
Images Insert images into the document
Save file formats .ktb (Kitab file format — HTML-based), .txt
Export formats PDF
Print Print via system dialog
Zoom Ctrl+scroll or right-click+scroll to zoom in/out
Fullscreen F11 to toggle fullscreen
Page system whenever a page fills up a new page gets created
Right-click menu Undo, redo, cut, copy, paste, find, select all

Tech Stack

  • Python 3.14
  • PySide6 (Qt6 bindings)
  • pyqttooltip — tooltip library
  • qtpy — Qt abstraction layer (used by pyqttooltip)

Project Structure

Kitab/
├── main.py          # Entry point — creates QApplication + MainWindow
├── mainwindow.py    # MainWindow, Editor (QTextEdit), FindReplaceDialog
├── images.py        # Base64-encoded app icon (imported by mainwindow.py)
├── icon.ico         # Windows icon
├── requirements.txt # Python dependencies
├── LICENSE          # GPLv3
└── README.md        # This file

Installation

Arch Linux

sudo pacman -S pyside6 python-qtpy

# pip is currently broken on Arch (expat/Python mismatch).
# Install pyqttooltip manually until it's fixed:
python3 -c "
import urllib.request
url = 'https://files.pythonhosted.org/packages/51/45/627fbd7a6dddf3a55010607e7fb354755b9ae792991a8e66a588f6dfa2a0/pyqttooltip-1.0.0-py3-none-any.whl'
urllib.request.urlretrieve(url, '/tmp/pyqttooltip-1.0.0-py3-none-any.whl')
"
mkdir -p ~/.local/lib/python3.14/site-packages/
unzip -o /tmp/pyqttooltip-1.0.0-py3-none-any.whl -d ~/.local/lib/python3.14/site-packages/

# Run
python main.py

Other platforms

pip install -r requirements.txt
python main.py

كتاب — معالج نصوص عربي

معالج نصوص خفيف مبني على PySide6 (Qt6).
بديل بسيط لـ LibreOffice Writer و Microsoft Word.
يحفظ المستندات بصيغة .ktb ويُصدّرها إلى PDF.

الميزات

الشرح الميزة
عريض، مائل، تحته خط، يتوسطه خط، لون، نوع الخط، حجم الخط، مسح التنسيق تحرير نصوص منسقة
يمين، وسط، يسار محاذاة النص
بحث مع خيار مطابقة الحروف الكابتل، استبدال الكل بحث واستبدال
إدراج جداول بعدد صفوف وأعمدة وعرض قابل للتعديل جداول
إدراج صور داخل المستند صور
.ktb (كتاب — مبنية على HTML)، .txt صيغ ملفات الحفظ
PDF صيغ التصدير
طباعة عبر نافذة النظام طباعة
Ctrl + عجلة الفأرة أو الزر الأيمن + عجلة الفأرة تكبير/تصغير
F11 ملء الشاشة
كلما امتلأت الصفحة تنشأ صفحة جديدة نظام الصفحات
تراجع، إعادة، قص، نسخ، لصق، بحث، تحديد الكل قائمة زر الفأرة الأيمن

هيكل المشروع

Kitab/
├── main.py          # نقطة الدخول — يُنشئ QApplication و MainWindow
├── mainwindow.py    # النافذة الرئيسية، المحرر، نافذة البحث والاستبدال
├── images.py        # أيقونة التطبيق بصيغة Base64
├── icon.ico         # أيقونة ويندوز
├── requirements.txt # متطلبات Python
├── LICENSE          # رخصة GPL v3
└── README.md        # هذا الملف

التنصيب

‏Arch Linux

sudo pacman -S pyside6 python-qtpy

# pip معطل حالياً على أرش بسبب عدم تطابق expat/Python.
# ثبت pyqttooltip يدوياً إلى أن تُحل المشكلة:
python3 -c "
import urllib.request
url = 'https://files.pythonhosted.org/packages/51/45/627fbd7a6dddf3a55010607e7fb354755b9ae792991a8e66a588f6dfa2a0/pyqttooltip-1.0.0-py3-none-any.whl'
urllib.request.urlretrieve(url, '/tmp/pyqttooltip-1.0.0-py3-none-any.whl')
"
mkdir -p ~/.local/lib/python3.14/site-packages/
unzip -o /tmp/pyqttooltip-1.0.0-py3-none-any.whl -d ~/.local/lib/python3.14/site-packages/

# تشغيل التطبيق
python main.py

المنصات الأخرى

pip install -r requirements.txt
python main.py

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kitab_writer-0.1.0.tar.gz (39.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kitab_writer-0.1.0-py3-none-any.whl (28.4 kB view details)

Uploaded Python 3

File details

Details for the file kitab_writer-0.1.0.tar.gz.

File metadata

  • Download URL: kitab_writer-0.1.0.tar.gz
  • Upload date:
  • Size: 39.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Hatch/1.17.0 {"ci":null,"cpu":"AMD64","implementation":{"name":"CPython","version":"3.14.6"},"installer":{"name":"hatch","version":"1.17.0"},"openssl_version":"OpenSSL 3.5.7 9 Jun 2026","python":"3.14.6","system":{"name":"Windows","release":"11"}} HTTPX2/2.5.0

File hashes

Hashes for kitab_writer-0.1.0.tar.gz
Algorithm Hash digest
SHA256 3950747523a92761bd46c5d9f1105df0cfbc0e88647a16695f320f3b82f8bb4f
MD5 b7e0d4b77485824c94019ed780109723
BLAKE2b-256 c2117d7c5aa1b1f27ad3f238aae4ba8a358c136220c92f12f9d89b9f6a5e22a2

See more details on using hashes here.

File details

Details for the file kitab_writer-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: kitab_writer-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 28.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Hatch/1.17.0 {"ci":null,"cpu":"AMD64","implementation":{"name":"CPython","version":"3.14.6"},"installer":{"name":"hatch","version":"1.17.0"},"openssl_version":"OpenSSL 3.5.7 9 Jun 2026","python":"3.14.6","system":{"name":"Windows","release":"11"}} HTTPX2/2.5.0

File hashes

Hashes for kitab_writer-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ea37cb89cbf0445e54b23e1f379c73809224b70d9465ba02e2f339736eb30418
MD5 c285698cbd3033485171c8ae6a30d612
BLAKE2b-256 67f414c5088eac134ed5ccbe7bcaf27d9e8f042fb386671daffb04c1f87b3fb9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page