توثيق واجهة برمجة التطبيقات لأدوات تحرير الكتب الإلكترونية¶
تتكون أدوات تحرير الكتب الإلكترونية من كائن calibre.ebooks.oeb.polish.container.Container
الذي يمثل كتابًا كمجموعة من ملفات HTML + ملفات الموارد، وأدوات متنوعة يمكن استخدامها لإجراء عمليات على الحاوية. جميع الأدوات هي على شكل دوال على مستوى الوحدة في وحدات calibre.ebooks.oeb.polish.*
المختلفة.
يمكنك الحصول على كائن حاوية لكتاب في مسار مثل هذا:
from calibre.ebooks.oeb.polish.container import get_container
container = get_container('Path to book file', tweak_mode=True)
إذا كنت تكتب إضافة لمحرر الكتب الإلكترونية، يمكنك الحصول على الحاوية الحالية للكتاب الذي يتم تحريره كالتالي:
from calibre.gui2.tweak_book import current_container
container = current_container()
if container is None:
report_error # No book has been opened yet
كائن الحاوية¶
- class calibre.ebooks.oeb.polish.container.Container(rootpath=None, opfpath=None, log=<calibre.utils.logging.Log object>, clone_data=None)[المصدر]¶
تمثل الحاوية كتابًا إلكترونيًا مفتوحًا كمجلد مليء بالملفات وملف OPF. هناك مفهومان مهمان:
المجلد الجذر. هذا هو أساس الكتاب الإلكتروني. جميع ملفات الكتب الإلكترونية موجودة داخل هذا المجلد أو في مجلداته الفرعية.
الأسماء: هذه هي مسارات لملفات الكتب بالنسبة للمجلد الجذر. تحتوي دائمًا على فواصل POSIX وغير مقتبسة. يمكن اعتبارها معرفات قانونية للملفات في الكتاب. معظم الطرق على كائن الحاوية تعمل مع الأسماء. الأسماء دائمًا في شكل NFC Unicode العادي.
النسخ: يدعم كائن الحاوية النسخ الفعال على القرص، والذي يستخدم لتنفيذ نقاط التفتيش في محرر الكتب الإلكترونية. لكي يعمل هذا، يجب ألا تصل إلى الملفات على نظام الملفات مباشرةً. بدلاً من ذلك، استخدم
raw_data()
أوopen()
للقراءة/الكتابة إلى ملفات المكونات في الكتاب.
عند التحويل بين hrefs والأسماء، استخدم الطرق التي توفرها هذه الفئة، فهي تفترض أن جميع hrefs مقتبسة.
- abspath_to_name(fullpath, root=None)[المصدر]¶
تحويل مسار مطلق إلى اسم قانوني بالنسبة إلى
root
- المعلمات:
root -- المجلد الأساسي. افتراضيًا، يتم استخدام الجذر لكائن الحاوية هذا.
- add_file(name, data=b'', media_type=None, spine_index=None, modify_name_if_needed=False, process_manifest_item=None, suggested_id='')[المصدر]¶
أضف ملفًا إلى هذه الحاوية. يتم إنشاء إدخالات للملف تلقائيًا في بيان OPF والعمود الفقري (إذا كان الملف مستندًا نصيًا)
- add_name_to_manifest(name, process_manifest_item=None, suggested_id='')[المصدر]¶
أضف إدخالاً إلى البيان لملف بالاسم المحدد. يُرجع معرف البيان.
- apply_unique_properties(name, *properties)[المصدر]¶
تأكد من تعيين الخصائص المحددة على عنصر البيان المحدد بالاسم فقط. يمكنك تمرير None كاسم لإزالة الخاصية من جميع العناصر.
- book_type = 'oeb'¶
نوع الكتاب (epub لملفات EPUB و azw3 لملفات AZW3)
- commit(outpath=None, keep_parsed=False)[المصدر]¶
تثبيت جميع الكائنات المحللة المتسخة إلى نظام الملفات وكتابة ملف الكتاب الإلكتروني في outpath.
- المعلمات:
output -- المسار لكتابة ملف الكتاب الإلكتروني المحفوظ إليه. إذا كان None، يتم استخدام مسار ملف الكتاب الأصلي.
keep_parsed -- إذا كان True، يتم الاحتفاظ بالتمثيلات المحللة للعناصر المثبتة في الذاكرة المؤقتة.
- commit_item(name, keep_parsed=False)[المصدر]¶
تثبيت كائن محلل على القرص (يتم تسلسله وكتابته إلى الملف الأساسي). إذا كان
keep_parsed
صحيحًا، يتم الاحتفاظ بالتمثيل المحلل في الذاكرة المؤقتة. انظر أيضًا:parsed()
- exists(name)[المصدر]¶
صحيح إذا كان ملف/مجلد يتوافق مع الاسم القانوني موجودًا. لاحظ أن هذه الدالة تعاني من قيود نظام الملفات الأساسي لنظام التشغيل، خاصة حساسية (عدم حساسية) حالة الأحرف. لذا على نظام ملفات غير حساس لحالة الأحرف ستعيد هذه الدالة True حتى لو كانت حالة الاسم مختلفة عن حالة ملف نظام الملفات الأساسي. انظر أيضًا
has_name()
- filesize(name)[المصدر]¶
إرجاع حجم الملف بالبايت الذي يمثله الاسم القانوني المحدد. يتعامل تلقائيًا مع الكائنات المحللة المتسخة. انظر أيضًا:
parsed()
- generate_item(name, id_prefix=None, media_type=None, unique_href=True)[المصدر]¶
أضف عنصرًا إلى البيان مع href مشتق من الاسم المعطى. يضمن تفرد href و id تلقائيًا. يُرجع العنصر الذي تم إنشاؤه.
- get_file_path_for_processing(name, allow_modification=True)[المصدر]¶
مشابه لـ open() باستثناء أنه يعيد مسار ملف، بدلاً من كائن ملف مفتوح.
- property guide_type_map¶
تعيين نوع الدليل إلى الاسم القانوني
- has_name(name)[المصدر]¶
إرجاع صحيح إذا كان ملف بالاسم القانوني المحدد موجودًا. على عكس
exists()
، هذه الطريقة حساسة لحالة الأحرف دائمًا.
- href_to_name(href, base=None)[المصدر]¶
تحويل href (بالنسبة إلى الأساس) إلى اسم. يجب أن يكون الأساس اسمًا أو None، وفي هذه الحالة يتم استخدام self.root.
- insert_into_xml(parent, item, index=None)[المصدر]¶
إدراج عنصر في الأصل (أو إلحاق إذا كان الفهرس None)، مع إصلاح المسافة البادئة. يعمل فقط مع العناصر ذاتية الإغلاق.
- is_dir = False¶
إذا كانت هذه الحاوية تمثل كتابًا غير مضغوط (دليل)
- iterlinks(name, get_line_numbers=True)[المصدر]¶
تكرار جميع الروابط في الاسم. إذا كانت get_line_numbers صحيحة، فإنها تعطي نتائج على شكل (رابط، رقم_السطر، إزاحة). حيث رقم_السطر هو رقم السطر الذي يظهر فيه الرابط والإزاحة هي عدد الأحرف من بداية السطر. لاحظ أن الإزاحة يمكن أن تشمل بالفعل عدة أسطر إذا لم تكن صفرًا.
- make_name_unique(name)[المصدر]¶
تأكد من أن name غير موجود بالفعل في هذا الكتاب. إذا كان موجودًا، فأرجع نسخة معدلة غير موجودة.
- property manifest_id_map¶
تعيين معرف البيان إلى الأسماء القانونية
- manifest_items_of_type(predicate)[المصدر]¶
أسماء جميع عناصر البيان التي يتطابق نوع الوسائط فيها مع المسند. يمكن أن يكون المسند مجموعة، قائمة، سلسلة، أو دالة تأخذ وسيطة واحدة، والتي سيتم استدعاؤها بنوع الوسائط.
- manifest_items_with_property(property_name)[المصدر]¶
جميع عناصر البيان التي تحتوي على الخاصية المحددة
- property manifest_type_map¶
تعيين نوع وسائط البيان إلى قائمة الأسماء القانونية لذلك النوع من الوسائط
- property mi¶
البيانات الوصفية لهذا الكتاب ككائن Metadata. لاحظ أن هذا الكائن يتم إنشاؤه ديناميكيًا في كل مرة يتم طلب هذه الخاصية، لذا استخدمه باعتدال.
- name_to_href(name, base=None)[المصدر]¶
تحويل اسم إلى href بالنسبة إلى الأساس، والذي يجب أن يكون اسمًا أو None وفي هذه الحالة يتم استخدام self.root كأساس
- property names_that_must_not_be_changed¶
مجموعة من الأسماء التي يجب عدم إعادة تسميتها أبدًا. تعتمد على تنسيق ملف الكتاب الإلكتروني.
- property names_that_must_not_be_removed¶
مجموعة من الأسماء التي يجب عدم حذفها أبدًا من الحاوية. تعتمد على تنسيق ملف الكتاب الإلكتروني.
- property names_that_need_not_be_manifested¶
مجموعة من الأسماء المسموح بغيابها من البيان. تعتمد على تنسيق ملف الكتاب الإلكتروني.
- open(name, mode='rb')[المصدر]¶
افتح الملف المشار إليه بالاسم للقراءة/الكتابة المباشرة. لاحظ أن هذا سيؤدي إلى تثبيت الملف إذا تم تعديله وإزالته من ذاكرة التخزين المؤقت للتحليل. يجب عليك الانتهاء من هذا الملف قبل الوصول إلى نسخته المحللة مرة أخرى، وإلا ستحدث أشياء سيئة.
- property opf¶
ملف OPF المحلل
- opf_get_or_create(name)[المصدر]¶
طريقة ملائمة لإرجاع أول عنصر XML بالاسم المحدد أو إنشائه تحت عنصر opf:package ثم إرجاعه، إذا لم يكن موجودًا بالفعل.
- property opf_version¶
الإصدار المحدد على عنصر <package> في OPF
- property opf_version_parsed¶
الإصدار المحدد على عنصر <package> في OPF كزوج من الأعداد الصحيحة
- opf_xpath(expr)[المصدر]¶
طريقة ملائمة لتقييم تعبير XPath على ملف OPF، تحتوي على بادئات مساحة الاسم opf: و dc: معرفة مسبقًا.
- parsed(name)[المصدر]¶
إرجاع تمثيل محلل للملف المحدد بالاسم. لملفات HTML و XML، يتم إرجاع شجرة lxml. لملفات CSS، يتم إرجاع ورقة أنماط css_parser. لاحظ أن الكائنات المحللة يتم تخزينها مؤقتًا للأداء. إذا قمت بإجراء أي تغييرات على الكائن المحلل، يجب عليك استدعاء
dirty()
حتى تدرك الحاوية تحديث ذاكرة التخزين المؤقت. انظر أيضًاreplace()
.
- raw_data(name, decode=True, normalize_to_nfc=True)[المصدر]¶
إرجاع البيانات الخام المقابلة للملف المحدد بالاسم
- المعلمات:
decode -- إذا كان True وكان للملف نوع MIME نصي، فقم بفك تشفيره وإرجاع كائن يونيكود بدلاً من البايتات الخام.
normalize_to_nfc -- إذا كان True، يتم تطبيع كائن يونيكود المُعاد إلى شكل NFC العادي كما هو مطلوب لتنسيقات ملفات EPUB و AZW3.
- relpath(path, base=None)[المصدر]¶
تحويل مسار مطلق (مع فواصل نظام التشغيل) إلى مسار نسبي للأساس (الافتراضي هو self.root). المسار النسبي ليس اسمًا. استخدم
abspath_to_name()
لذلك.
- remove_from_spine(spine_items, remove_if_no_longer_in_spine=True)[المصدر]¶
إزالة العناصر المحددة (بالاسم القانوني) من العمود الفقري. إذا كان
remove_if_no_longer_in_spine
صحيحًا، يتم حذف العناصر أيضًا من الكتاب، وليس فقط من العمود الفقري.
- remove_from_xml(item)[المصدر]¶
يزيل العنصر من الأصل، مع إصلاح المسافة البادئة (يعمل فقط مع العناصر ذاتية الإغلاق)
- remove_item(name, remove_from_guide=True)[المصدر]¶
إزالة العنصر المحدد بالاسم من هذه الحاوية. يؤدي هذا إلى إزالة جميع المراجع إلى العنصر في بيان OPF، والدليل، والعمود الفقري، بالإضافة إلى أي ذاكرات تخزين مؤقت داخلية.
- rename(current_name, new_name)[المصدر]¶
إعادة تسمية ملف من current_name إلى new_name. يقوم تلقائيًا بإعادة بناء جميع الروابط داخل الملف إذا تغير المجلد الذي يوجد فيه الملف. لاحظ مع ذلك، أن الروابط لا يتم تحديثها في الملفات الأخرى التي قد تشير إلى هذا الملف. هذا من أجل الأداء، يجب أن تتم هذه التحديثات مرة واحدة، بشكل مجمع.
- replace(name, obj)[المصدر]¶
استبدل الكائن المحلل المقابل للاسم بـ obj، والذي يجب أن يكون كائنًا مشابهًا، أي شجرة lxml لملفات HTML/XML أو ورقة أنماط css_parser لملف CSS.
- replace_links(name, replace_func)[المصدر]¶
استبدال جميع الروابط في الاسم باستخدام replace_func، والتي يجب أن تكون قابلة للاستدعاء تقبل عنوان URL وتعيد عنوان URL المستبدل. يجب أن تحتوي أيضًا على سمة 'replaced' يتم تعيينها إلى True إذا تم أي استبدال فعلي. الطرق الملائمة لإنشاء مثل هذه الدوال القابلة للاستدعاء هي استخدام فئتي
LinkReplacer
وLinkRebaser
.
- serialize_item(name)[المصدر]¶
تحويل كائن محلل (محدد بالاسم القانوني) إلى سلسلة بايتية. انظر
parsed()
.
- set_spine(spine_items)[المصدر]¶
عيّن العمود الفقري ليكون spine_items حيث spine_items هو قابل للتكرار على شكل (الاسم، خطي). سيثير خطأ إذا لم يكن أحد الأسماء موجودًا في البيان.
- property spine_items¶
مكرر يعطي المسار لكل عنصر في العمود الفقري للكتب. انظر أيضًا:
spine_iter
وspine_items
.
- property spine_iter¶
مكرر يعطي العنصر، الاسم is_linear لكل عنصر في العمود الفقري للكتب. العنصر هو عنصر lxml، الاسم هو اسم الملف القانوني وis_linear صحيح إذا كان العنصر خطيًا. انظر أيضًا:
spine_names
و:attr:spine_items.
- property spine_names¶
مكرر يعطي الاسم و is_linear لكل عنصر في العمود الفقري للكتب. انظر أيضًا:
spine_iter
وspine_items
.
إدارة ملفات المكونات في حاوية¶
- calibre.ebooks.oeb.polish.replace.replace_links(container, link_map, frag_map=<function <lambda>>, replace_in_opf=False)[المصدر]¶
استبدال الروابط إلى الملفات في الحاوية. سيتكرر على جميع الملفات في الحاوية ويغير الروابط المحددة فيها.
- المعلمات:
link_map -- تعيين اسم قانوني قديم إلى اسم قانوني جديد. على سبيل المثال:
{'images/old.png': 'images/new.png'}
frag_map -- دالة قابلة للاستدعاء تأخذ وسيطتين
(name, anchor)
وتعيد مرساة جديدة. هذا مفيد إذا كنت بحاجة إلى تغيير المراسي في ملفات HTML. افتراضيًا، لا تفعل شيئًا.replace_in_opf -- إذا كانت False، لا يتم استبدال الروابط في ملف OPF.
الطباعة الجميلة والتصحيح التلقائي لأخطاء التحليل¶
- calibre.ebooks.oeb.polish.pretty.fix_html(container, raw)[المصدر]¶
إصلاح أي أخطاء تحليل في HTML الممثل كسلسلة في raw. يتم الإصلاح باستخدام خوارزمية تحليل HTML5.
- calibre.ebooks.oeb.polish.pretty.fix_all_html(container)[المصدر]¶
إصلاح أي أخطاء تحليل في جميع ملفات HTML في الحاوية. يتم الإصلاح باستخدام خوارزمية تحليل HTML5.
- calibre.ebooks.oeb.polish.pretty.pretty_html(container, name, raw)[المصدر]¶
طباعة HTML الممثل كسلسلة في raw بشكل جميل
- calibre.ebooks.oeb.polish.pretty.pretty_css(container, name, raw)[المصدر]¶
طباعة CSS الممثل كسلسلة في raw بشكل جميل
إدارة أغلفة الكتب¶
تقسيم ودمج الملفات¶
- calibre.ebooks.oeb.polish.split.split(container, name, loc_or_xpath, before=True, totals=None)[المصدر]¶
تقسيم الملف المحدد بالاسم عند الموضع المحدد بواسطة loc_or_xpath. يؤدي التقسيم تلقائيًا إلى ترحيل جميع الروابط والمراجع إلى الملفات المتأثرة.
- المعلمات:
loc_or_xpath -- يجب أن يكون تعبير XPath مثل //h:div[@id="split_here"]. يمكن أن يكون أيضًا loc الذي يستخدم داخليًا لتنفيذ التقسيم في لوحة المعاينة.
before -- إذا كان True، يحدث التقسيم قبل العنصر المحدد وإلا بعده.
totals -- يستخدم داخلياً
- calibre.ebooks.oeb.polish.split.multisplit(container, name, xpath, before=True)[المصدر]¶
تقسيم الملف المحدد في مواقع متعددة (جميع العلامات التي تتطابق مع تعبير XPath المحدد). انظر أيضًا:
split()
. يؤدي التقسيم تلقائيًا إلى ترحيل جميع الروابط والمراجع إلى الملفات المتأثرة.- المعلمات:
before -- إذا كان True، تحدث التقسيمات قبل العنصر المحدد وإلا بعده.
- calibre.ebooks.oeb.polish.split.merge(container, category, names, master)[المصدر]¶
دمج الملفات المحددة في ملف واحد، مع ترحيل جميع الروابط والمراجع تلقائيًا إلى الملفات المتأثرة. يجب أن تكون جميع الملفات إما HTML أو ملفات CSS.
- المعلمات:
category -- يجب أن يكون إما
'text'
لملفات HTML أو'styles'
لملفات CSSnames -- قائمة الملفات المراد دمجها
master -- أي من الملفات المدمجة هو الملف الرئيسي، أي الملف الذي سيبقى بعد الدمج.
إدارة الأغلفة¶
- calibre.ebooks.oeb.polish.cover.set_cover(container, cover_path, report=None, options=None)[المصدر]¶
عيّن غلاف الكتاب ليكون الصورة التي يشير إليها cover_path.
- المعلمات:
cover_path -- إما المسار المطلق لملف صورة أو الاسم القانوني لصورة في الكتاب. عند استخدام صورة في الكتاب، يجب عليك أيضًا تعيين الخيارات، انظر أدناه.
report -- دالة اختيارية قابلة للاستدعاء تأخذ وسيطة واحدة. سيتم استدعاؤها مع معلومات حول المهام التي تتم معالجتها.
options -- None أو قاموس يتحكم في كيفية تعيين الغلاف. يمكن أن يحتوي القاموس على إدخالات: keep_aspect: True أو False (الحفاظ على نسبة العرض إلى الارتفاع للأغلفة في EPUB) no_svg: True أو False (استخدام غلاف SVG في صفحة عنوان EPUB) existing: True أو False (يشير
cover_path
إلى صورة موجودة في الكتاب)
العمل مع CSS¶
- calibre.ebooks.oeb.polish.fonts.change_font(container, old_name, new_name=None)[المصدر]¶
تغيير عائلة خط من old_name إلى new_name. يغير جميع تكرارات عائلة الخط في أوراق الأنماط وعلامات الأنماط وسمات الأنماط. إذا كان old_name يشير إلى خط مضمن، فسيتم إزالته. يمكنك تعيين new_name إلى None لإزالة عائلة الخط بدلاً من تغييرها.
- calibre.ebooks.oeb.polish.css.remove_unused_css(container, report=None, remove_unused_classes=False, merge_rules=False, merge_rules_with_identical_properties=False, remove_unreferenced_sheets=False)[المصدر]¶
إزالة جميع قواعد CSS غير المستخدمة من الكتاب. قاعدة CSS غير مستخدمة هي تلك التي لا تتطابق مع أي محتوى فعلي.
- المعلمات:
report -- دالة اختيارية قابلة للاستدعاء تأخذ وسيطة واحدة. يتم استدعاؤها مع معلومات حول العمليات التي يتم تنفيذها.
remove_unused_classes -- إذا كان True، فسيتم أيضًا إزالة سمات الفئة في HTML التي لا تتطابق مع أي قواعد CSS.
merge_rules -- إذا كانت True، يتم دمج القواعد ذات المحددات المتطابقة.
merge_rules_with_identical_properties -- إذا كانت True، يتم دمج القواعد ذات الخصائص المتطابقة.
remove_unreferenced_sheets -- إذا كانت True، يتم إزالة أوراق الأنماط التي لا يشير إليها أي محتوى
- calibre.ebooks.oeb.polish.css.filter_css(container, properties, names=())[المصدر]¶
إزالة خصائص CSS المحددة من جميع قواعد CSS في الكتاب.
- المعلمات:
properties -- مجموعة من الخصائص لإزالتها. على سبيل المثال:
{'font-family', 'color'}
.names -- الملفات التي سيتم إزالة الخصائص منها. الافتراضي هو جميع ملفات HTML و CSS في الكتاب.
العمل مع جدول المحتويات¶
- calibre.ebooks.oeb.polish.toc.from_xpaths(container, xpaths, prefer_title=False)[المصدر]¶
إنشاء جدول محتويات من قائمة تعبيرات XPath. كل تعبير في القائمة يتوافق مع مستوى من جدول المحتويات الذي تم إنشاؤه. على سبيل المثال:
['//h:h1', '//h:h2', '//h:h3']
سينشئ جدول محتويات من ثلاثة مستويات من علامات<h1>
و<h2>
و<h3>
.
- calibre.ebooks.oeb.polish.toc.from_links(container)[المصدر]¶
إنشاء جدول محتويات من الروابط في الكتاب.
أداة تحرير الكتب¶
- class calibre.gui2.tweak_book.plugin.Tool[المصدر]¶
الأساس:
object
الفئة الأساسية للأدوات الفردية في إضافة تحرير الكتب. تتضمن الأعضاء المفيدة:
self.plugin
: مرجع إلى كائنcalibre.customize.Plugin
الذي تنتمي إليه هذه الأداة.self.
boss
self.
gui
الطرق التي يجب تجاوزها في الفئات الفرعية:
- name = None¶
عيّن هذا إلى اسم فريد وسيتم استخدامه كمفتاح
- allowed_in_toolbar = True¶
إذا كان True، يمكن للمستخدم اختيار وضع هذه الأداة في شريط أدوات الإضافات
إذا كان True، يمكن للمستخدم اختيار وضع هذه الأداة في قائمة الإضافات
- toolbar_button_popup_mode = 'delayed'¶
وضع القائمة المنبثقة (إن وجدت) لزر شريط الأدوات. القيم المحتملة هي 'delayed' (متأخر)، 'instant' (فوري)، 'button' (زر)
- property boss¶
كائن
calibre.gui2.tweak_book.boss.Boss
. يستخدم للتحكم في واجهة المستخدم.
- property gui¶
النافذة الرئيسية لواجهة المستخدم
- property current_container¶
إرجاع كائن
calibre.ebooks.oeb.polish.container.Container
الحالي الذي يمثل الكتاب الذي يتم تحريره.
- register_shortcut(qaction, unique_name, default_keys=(), short_text=None, description=None, **extra_data)[المصدر]¶
تسجيل اختصار لوحة مفاتيح سيؤدي إلى تشغيل
qaction
المحدد. سيصبح اختصار لوحة المفاتيح هذا قابلاً للتخصيص تلقائيًا بواسطة المستخدم في قسم اختصارات لوحة المفاتيح في تفضيلات المحرر.- المعلمات:
qaction -- كائن QAction، سيتم تشغيله عند الضغط على مجموعة المفاتيح المكونة من قبل المستخدم.
unique_name -- اسم فريد لهذا الاختصار/الإجراء. سيتم استخدامه داخليًا، ويجب ألا يتم مشاركته مع أي إجراءات أخرى في هذه الإضافة.
default_keys -- قائمة باختصارات لوحة المفاتيح الافتراضية. إذا لم يتم تحديدها، فلن يتم تعيين أي اختصارات افتراضية. إذا تعارضت الاختصارات المحددة هنا مع اختصارات مدمجة أو اختصارات من تكوين المستخدم/إضافات أخرى، فسيتم تجاهلها. في هذه الحالة، سيتعين على المستخدمين تكوين الاختصارات يدويًا عبر التفضيلات. على سبيل المثال:
default_keys=('Ctrl+J', 'F9')
.short_text -- وصف اختياري قصير لهذا الإجراء. إذا لم يتم تحديده، فسيتم استخدام النص من QAction.
description -- وصف اختياري أطول لهذا الإجراء، سيتم استخدامه في إدخال التفضيلات لهذا الاختصار.
- create_action(for_toolbar=True)[المصدر]¶
إنشاء QAction سيتم إضافته إما إلى شريط أدوات الإضافات أو قائمة الإضافات اعتمادًا على
for_toolbar
. على سبيل المثال:def create_action(self, for_toolbar=True): ac = QAction(get_icons('myicon.png'), 'Do something') if for_toolbar: # We want the toolbar button to have a popup menu menu = QMenu() ac.setMenu(menu) menu.addAction('Do something else') subaction = menu.addAction('And another') # Register a keyboard shortcut for this toolbar action be # careful to do this for only one of the toolbar action or # the menu action, not both. self.register_shortcut(ac, 'some-unique-name', default_keys=('Ctrl+K',)) return ac
شاهد أيضا
طريقة
register_shortcut()
.
التحكم في واجهة المستخدم للمحرر¶
يتم التحكم في واجهة مستخدم محرر الكتب الإلكترونية بواسطة كائن Boss عالمي واحد. يحتوي هذا الكائن على العديد من الطرق المفيدة التي يمكن استخدامها في كود الإضافة لأداء المهام الشائعة.
- class calibre.gui2.tweak_book.boss.Boss(parent, notify=None)[المصدر]¶
-
- apply_container_update_to_gui(mark_as_modified=True)[المصدر]¶
تحديث جميع مكونات واجهة المستخدم لتعكس أحدث البيانات في حاوية الكتاب الحالية.
- المعلمات:
mark_as_modified -- إذا كان صحيحًا، فسيتم وضع علامة على الكتاب كـ 'معدّل'، لذلك سيُطلب من المستخدم حفظه عند الإغلاق.
- commit_all_editors_to_container()[المصدر]¶
تثبيت أي تغييرات أجراها المستخدم على الملفات المفتوحة في المحررات إلى الحاوية. يجب عليك استدعاء هذه الطريقة قبل تنفيذ أي إجراءات على الحاوية الحالية
- property currently_editing¶
إرجاع اسم الملف الذي يتم تحريره حاليًا أو None إذا لم يتم تحرير أي ملف
- edit_file(name, syntax=None, use_template=None)[المصدر]¶
افتح الملف المحدد بالاسم في محرر
- المعلمات:
syntax -- نوع وسائط الملف، على سبيل المثال،
'text/html'
. إذا لم يتم تحديده، يتم تخمينه من امتداد الملف.use_template -- قالب لتهيئة المحرر المفتوح به
- open_book(path=None, edit_file=None, clear_notify_data=True, open_folder=False, search_text=None)[المصدر]¶
افتح الكتاب الإلكتروني في
path
للتحرير. سيعرض خطأ إذا لم يكن الكتاب الإلكتروني بتنسيق مدعوم أو إذا كان الكتاب الحالي يحتوي على تغييرات غير محفوظة.- المعلمات:
edit_file -- اسم ملف داخل الكتاب الذي تم فتحه حديثًا لبدء التحرير. يمكن أن يكون أيضًا قائمة أسماء.
- rewind_savepoint()[المصدر]¶
التراجع عن إنشاء نقطة استعادة سابقة، مفيد إذا قمت بإنشاء نقطة استعادة، ثم ألغيت العملية دون أي تغييرات
- show_current_diff(allow_revert=True, to_container=None)[المصدر]¶
إظهار التغييرات على الكتاب من آخر حالة تم حفظها
- المعلمات:
allow_revert -- إذا كان True، فسيحتوي مربع حوار الفروقات على زر يسمح للمستخدم بالتراجع عن جميع التغييرات
to_container -- كائن حاوية لمقارنة الحاوية الحالية به. إذا كان None، يتم استخدام الحاوية التي تم حفظها مسبقًا