A simple and lightweight word processor written in qt. معالج نصوص بسيط وخفيف مكتوب بمكتبة qt.
Project description
Kitab — كتاب
(النص العربي في الاسفل)
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 | |
| 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 | صيغ ملفات الحفظ |
| صيغ التصدير | |
| طباعة عبر نافذة النظام | طباعة |
| 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3950747523a92761bd46c5d9f1105df0cfbc0e88647a16695f320f3b82f8bb4f
|
|
| MD5 |
b7e0d4b77485824c94019ed780109723
|
|
| BLAKE2b-256 |
c2117d7c5aa1b1f27ad3f238aae4ba8a358c136220c92f12f9d89b9f6a5e22a2
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ea37cb89cbf0445e54b23e1f379c73809224b70d9465ba02e2f339736eb30418
|
|
| MD5 |
c285698cbd3033485171c8ae6a30d612
|
|
| BLAKE2b-256 |
67f414c5088eac134ed5ccbe7bcaf27d9e8f042fb386671daffb04c1f87b3fb9
|