API dokumentacija za alate za uređivanje e-knjiga¶
Alati za uređivanje e-knjiga sastoje se od calibre.ebooks.oeb.polish.container.Container objekta koji predstavlja knjigu kao kolekciju HTML + resursnih datoteka, i raznih alata koji se mogu koristiti za izvođenje operacija na kontejneru. Svi alati su u obliku funkcija na nivou modula u raznim calibre.ebooks.oeb.polish.* modulima.
Objekat kontejnera za knjigu na određenoj putanji dobijate ovako:
from calibre.ebooks.oeb.polish.container import get_container
container = get_container('Path to book file', tweak_mode=True)
Ako pišete dodatak za uređivač e-knjiga, trenutni kontejner za knjigu koja se uređuje dobijate ovako:
from calibre.gui2.tweak_book import current_container
container = current_container()
if container is None:
report_error # No book has been opened yet
Container objekat¶
- class calibre.ebooks.oeb.polish.container.Container(rootpath=None, opfpath=None, log=<calibre.utils.logging.Log object>, clone_data=None)[изворни код]¶
Kontejner predstavlja otvorenu e-knjigu kao fasciklu punu datoteka i OPF datoteku. Postoje dva važna koncepta:
Korenska fascikla. Ovo je osnova e-knjige. Sve datoteke e-knjige su unutar ove fascikle ili u njenim podfasciklama.
Imena: to su putanje do fajlova knjige u odnosu na korensku fasciklu. Uvek koriste POSIX separatore i nisu URL-kodirana. Mogu se posmatrati kao kanonski identifikatori fajlova u knjizi. Većina metoda objekta kontejnera koristi imena. Imena su uvek u normalizovanom Unicode obliku NFC.
Klonovi: kontejner objekat podržava efikasno kloniranje na disku, koje se koristi za implementaciju kontrolnih tačaka u uređivaču e-knjiga. Da bi ovo radilo, nikada ne bi trebalo da pristupate datotekama na sistemu datoteka direktno. Umesto toga, koristite
raw_data()iliopen()za čitanje/pisanje komponentnih datoteka u knjizi.
Pri pretvaranju između href vrednosti i imena koristite metode ove klase. One pretpostavljaju da su sve href vrednosti URL-kodirane.
- abspath_to_name(fullpath, root=None)[изворни код]¶
Pretvorite apsolutnu putanju u kanonsko ime relativno u odnosu na
root- Параметри:
root -- Osnovna fascikla. Podrazumevano se koristi koren za ovaj kontejner objekat.
- add_file(name, data=b'', media_type=None, spine_index=None, modify_name_if_needed=False, process_manifest_item=None, suggested_id='')[изворни код]¶
Dodajte fajl u ovaj kontejner. Unosi za fajl se automatski kreiraju u OPF manifestu i spine-u (ako je fajl tekstualni dokument)
- add_name_to_manifest(name, process_manifest_item=None, suggested_id='')[изворни код]¶
Dodajte unos u manifest za fajl sa navedenim imenom. Vraća ID manifesta.
- add_properties(name, *properties)[изворни код]¶
Dodajte navedena svojstva stavci manifesta identifikovanoj imenom.
- apply_unique_properties(name, *properties)[изворни код]¶
Obezbedite da su navedena svojstva postavljena samo na stavci manifesta identifikovanoj imenom. Možete proslediti None kao ime da biste uklonili svojstvo sa svih stavki.
- book_type = 'oeb'¶
Tip knjige (epub za EPUB fajlove i azw3 za AZW3 fajlove)
- commit(outpath=None, keep_parsed=False)[изворни код]¶
Upišite sve izmenjene parsirane objekte u fajl sistem i sačuvaj e-knjigu na outpath.
- Параметри:
output -- Putanja na koju se čuva fajl e-knjige. Ako je None, koristi se putanja originalnog fajla knjige.
keep_parsed -- Ako je True, parsirane reprezentacije sačuvanih stavki se zadržavaju u kešu.
- commit_item(name, keep_parsed=False)[изворни код]¶
Upišite parsirani objekat na disk (serijalizuje se i upisuje u osnovni fajl). Ako je
keep_parsedTrue, parsirana reprezentacija se zadržava u kešu. Pogledajte takođe:parsed()
- dirty(name)[изворни код]¶
Označite parsirani objekat koji odgovara imenu kao izmenjen (dirty). Pogledajte takođe:
parsed().
- exists(name)[изворни код]¶
True ako i samo ako fajl/folder koji odgovara kanonskom imenu postoji. Imajte na umu da ova funkcija pati od ograničenja osnovnog OS fajl sistema, posebno (ne)osetljivosti na velika i mala slova. Tako će na fajl sistemu neosetljivom na velika i mala slova ovo vratiti True čak i ako se veličina slova imena razlikuje od veličine slova osnovnog fajla u fajl sistemu. Pogledajte takođe
has_name()
- filesize(name)[изворни код]¶
Vratite veličinu u bajtovima fajla predstavljenog navedenim kanonskim imenom. Automatski rukuje izmenjenim parsiranim objektima. Pogledajte takođe:
parsed()
- generate_item(name, id_prefix=None, media_type=None, unique_href=True)[изворни код]¶
Dodajte stavku u manifest sa href izvedenim iz datog imena. Automatski osigurava jedinstvenost href i id. Vraća generisanu stavku.
- get_file_path_for_processing(name, allow_modification=True)[изворни код]¶
Slično kao open() osim što vraća putanju datoteke, umesto otvorenog objekta datoteke.
- property guide_type_map¶
Mapiranje tipa vodiča u kanonsko ime
- has_name(name)[изворни код]¶
Vraća True ako i samo ako postoji datoteka sa istim kanonskim imenom kao što je navedeno. Za razliku od
exists()ova metoda je uvek osetljiva na velika i mala slova.
- href_to_name(href, base=None)[изворни код]¶
Pretvorite href (relativno u odnosu na base) u ime. base mora biti ime ili None, u kom slučaju se koristi self.root.
- insert_into_xml(parent, item, index=None)[изворни код]¶
Umetnite stavku u roditelja (ili dodaj na kraj ako je index None), popravljajući uvlačenje. Radi samo sa samozatvarajućim stavkama.
- is_dir = False¶
Ako ovaj kontejner predstavlja otpakovanu knjigu (direktorijum)
- iterlinks(name, get_line_numbers=True)[изворни код]¶
Iteriraj preko svih veza u name. Ako je get_line_numbers True, daje rezultate u obliku (link, line_number, offset). Gde je line_number broj linije na kojoj se veza pojavljuje, a offset je broj znakova od početka linije. Imajte na umu da offset zapravo može obuhvatiti nekoliko linija ako nije nula.
- make_name_unique(name)[изворни код]¶
Obezbedite da name već ne postoji u ovoj knjizi. Ako postoji, vrati izmenjenu verziju koja ne postoji.
- manifest_has_name(name)[изворни код]¶
Vraća True ako manifest ima unos koji odgovara imenu
- property manifest_id_map¶
Mapiranje id-a manifesta u kanonska imena
- manifest_items_of_type(predicate)[изворни код]¶
Imena svih stavki manifesta čiji se media-type podudara sa predicate. predicate može biti skup, lista, string ili funkcija koja uzima jedan argument, koja će biti pozvana sa media-type.
- manifest_items_with_property(property_name)[изворни код]¶
Sve stavke manifesta koje imaju navedeno svojstvo
- property manifest_type_map¶
Mapiranje media-type manifesta u listu kanonskih imena tog media-type
- property mi¶
Metapodaci ove knjige kao Metadata objekat. Imajte na umu da se ovaj objekat konstruiše u hodu svaki put kada se ovo svojstvo zatraži, pa ga koristite štedljivo.
- name_to_abspath(name)[изворни код]¶
Pretvorite kanonsko ime u apsolutnu putanju zavisnu od OS-a
- name_to_href(name, base=None)[изворни код]¶
Pretvorite ime u href relativan u odnosu na base, koji mora biti ime ili None u kom slučaju se self.root koristi kao osnova
- property names_that_must_not_be_changed¶
Skup imena koja se nikada ne smeju preimenovati. Zavisi od formata e-knjige.
- property names_that_must_not_be_removed¶
Skup imena koja se nikada ne smeju obrisati iz kontejnera. Zavisi od formata e-knjige.
- property names_that_need_not_be_manifested¶
Skup imena kojima je dozvoljeno da nedostaju u manifestu. Zavisi od formata e-knjige.
- open(name, mode='rb')[изворни код]¶
Otvorite fajl na koji pokazuje name za direktno čitanje/pisanje. Imajte na umu da će ovo sačuvati fajl ako je izmenjen i ukloniti ga iz keša za parsiranje. Morate završiti sa ovim fajlom pre nego što ponovo pristupite njegovoj parsiranoj verziji, inače će se desiti loše stvari.
- property opf¶
Parsirani OPF fajl
- opf_get_or_create(name)[изворни код]¶
Pomoćni metod koji vraća prvi XML element s navedenim imenom ili ga, ako ne postoji, pravi ispod elementa opf:package pa ga vraća.
- property opf_version¶
Verzija postavljena na <package> elementu OPF-a
- property opf_version_parsed¶
Verzija postavljena na <package> elementu OPF-a kao torka celih brojeva
- opf_xpath(expr)[изворни код]¶
Pogodna metoda za evaluaciju XPath izraza na OPF fajlu, ima unapred definisane opf: i dc: prefikse imenskog prostora.
- parsed(name)[изворни код]¶
Vraća parsiranu reprezentaciju fajla navedenog po imenu. Za HTML i XML fajlove vraća se lxml stablo. Za CSS fajlove vraća se css_parser stylesheet. Imajte na umu da se parsirani objekti keširaju radi performansi. Ako napravite bilo kakve izmene na parsiranom objektu, morate pozvati
dirty()kako bi kontejner znao da ažurira keš. Pogledajte takođereplace().
- raw_data(name, decode=True, normalize_to_nfc=True)[изворни код]¶
Vraća sirove podatke koji odgovaraju fajlu navedenom po imenu
- Параметри:
decode -- Ako je True i fajl ima tekstualni MIME tip, dekodira ga i vraća unicode objekat umesto sirovih bajtova.
normalize_to_nfc -- Ako je True, vraćeni unicode objekat se normalizuje u NFC normalnu formu kao što je potrebno za EPUB i AZW3 formate fajlova.
- relpath(path, base=None)[изворни код]¶
Konvertuje apsolutnu putanju (sa OS separatorima) u putanju relativnu u odnosu na base (podrazumevano self.root). Relativna putanja nije ime. Koristite
abspath_to_name()za to.
- remove_from_spine(spine_items, remove_if_no_longer_in_spine=True)[изворни код]¶
Uklanja navedene stavke (po kanonskom imenu) iz spine-a. Ako je
remove_if_no_longer_in_spineTrue, stavke se takođe brišu iz knjige, a ne samo iz spine-a.
- remove_from_xml(item)[изворни код]¶
Uklanja stavku iz roditelja, popravljajući uvlačenje (radi samo sa samozatvarajućim stavkama)
- remove_item(name, remove_from_guide=True)[изворни код]¶
Uklanja stavku identifikovanu imenom iz ovog kontejnera. Ovo uklanja sve reference na stavku u OPF manifestu, guide-u i spine-u, kao i iz svih internih keševa.
- rename(current_name, new_name)[изворни код]¶
Preimenuje fajl iz current_name u new_name. Automatski re-bazira sve linkove unutar fajla ako se promeni folder u kojem se fajl nalazi. Imajte na umu, međutim, da se linkovi ne ažuriraju u drugim fajlovima koji bi mogli referencirati ovaj fajl. Ovo je zbog performansi, takva ažuriranja bi trebalo raditi jednom, grupno.
- replace(name, obj)[изворни код]¶
Zamenjuje parsirani objekat koji odgovara imenu sa obj, koji mora biti sličan objekat, tj. lxml stablo za HTML/XML ili css_parser stylesheet za CSS fajl.
- replace_links(name, replace_func)[изворни код]¶
Zamenite sve linkove u name pomoću replace_func. To mora biti funkcija koja prima URL i vraća zamenski URL. Mora imati i atribut 'replaced', postavljen na True ako je neka zamena zaista izvršena. Takvu funkciju možete napraviti pomoću klasa
LinkReplaceriLinkRebaser.
- serialize_item(name)[изворни код]¶
Konvertujte parsirani objekat (identifikovan kanonskim imenom) u bytestring. Pogledajte
parsed().
- set_spine(spine_items)[изворни код]¶
Postavite spine da bude spine_items gde je spine_items iterabilan u obliku (name, linear). Izbaciće grešku ako jedno od imena nije prisutno u manifestu.
- property spine_items¶
Iterator koji daje putanju za svaku stavku u spine knjige. Pogledajte takođe:
spine_iterispine_items.
- property spine_iter¶
Iterator koji daje item, name is_linear za svaku stavku u spine knjige. item je lxml element, name je kanonsko ime datoteke, a is_linear je True ako je stavka linearna. Pogledajte takođe:
spine_namesispine_items.
- property spine_names¶
Iterator koji daje name i is_linear za svaku stavku u spine knjige. Pogledajte takođe:
spine_iterispine_items.
Upravljanje datotekama komponenti u kontejneru¶
- calibre.ebooks.oeb.polish.replace.replace_links(container, link_map, frag_map=<function <lambda>>, replace_in_opf=False)[изворни код]¶
Zamenite veze ka datotekama u kontejneru. Iteriraće kroz sve datoteke u kontejneru i promeniti navedene veze u njima.
- Параметри:
link_map -- Mapiranje starog kanonskog imena u novo kanonsko ime. Na primer:
{'images/old.png': 'images/new.png'}frag_map -- Funkcija koja prima dva argumenta,
(name, anchor), i vraća novo sidro. Korisna je kada treba promeniti sidra u HTML fajlovima. Podrazumevano se ništa ne menja.replace_in_opf -- Ako je False, veze se ne menjaju u OPF datoteci.
- calibre.ebooks.oeb.polish.replace.rename_files(container, file_map)[изворни код]¶
Preimenujte datoteke u kontejneru, automatski ažurirajući sve veze ka njima.
- Параметри:
file_map -- Mapiranje starog kanonskog imena u novo kanonsko ime, na primer:
{'text/chapter1.html': 'chapter1.html'}.
- calibre.ebooks.oeb.polish.replace.get_recommended_folders(container, names)[изворни код]¶
Vraća fascikle koje su preporučene za data imena datoteka. Preporuka se zasniva na tome gde se nalazi većina datoteka istog tipa u kontejneru. Ako nema datoteka određenog tipa, pretpostavlja se da je preporučena fascikla ona koja sadrži OPF datoteku.
Ulepšavanje koda i automatsko popravljanje grešaka pri parsiranju¶
- calibre.ebooks.oeb.polish.pretty.fix_html(container, raw)[изворни код]¶
Popravlja sve greške pri parsiranju u HTML-u predstavljenom kao string u raw. Popravljanje se vrši pomoću HTML5 algoritma za parsiranje.
- calibre.ebooks.oeb.polish.pretty.fix_all_html(container)[изворни код]¶
Popravlja sve greške pri parsiranju u svim HTML datotekama u kontejneru. Popravljanje se vrši pomoću HTML5 algoritma za parsiranje.
- calibre.ebooks.oeb.polish.pretty.pretty_html(container, name, raw)[изворни код]¶
Ulepšava HTML predstavljen kao string u raw
- calibre.ebooks.oeb.polish.pretty.pretty_css(container, name, raw)[изворни код]¶
Ulepšava CSS predstavljen kao string u raw
- calibre.ebooks.oeb.polish.pretty.pretty_xml(container, name, raw)[изворни код]¶
Ulepšava XML predstavljen kao string u raw. Ako je
nameime OPF-a, vrši se dodatno ulepšavanje specifično za OPF.
- calibre.ebooks.oeb.polish.pretty.pretty_all(container)[изворни код]¶
Ulepšava sve HTML/CSS/XML datoteke u kontejneru
Upravljanje informativnim stranicama o knjizi¶
- calibre.ebooks.oeb.polish.jacket.remove_jacket(container)[изворни код]¶
Uklanja postojeću informativnu stranicu o knjizi, ako postoji. Vraća False ako nije pronađena.
- calibre.ebooks.oeb.polish.jacket.add_or_replace_jacket(container)[изворни код]¶
Pravi novu informativnu stranicu na osnovu metapodataka knjige ili zamenjuje postojeću. Vraća True ako je postojeća stranica zamenjena.
Deljenje i spajanje fajlova¶
- calibre.ebooks.oeb.polish.split.split(container, name, loc_or_xpath, before=True, totals=None)[изворни код]¶
Deli fajl naveden po imenu na poziciji navedenoj sa loc_or_xpath. Deljenje automatski migrira sve linkove i reference na pogođene fajlove.
- Параметри:
loc_or_xpath -- Treba da bude XPath izraz kao što je //h:div[@id="split_here"]. Može takođe biti loc koji se koristi interno za implementaciju deljenja u panelu za pregled.
before -- Ako je True, deljenje se dešava pre identifikovanog elementa, inače posle njega.
totals -- Koristi se interno
- calibre.ebooks.oeb.polish.split.multisplit(container, name, xpath, before=True)[изворни код]¶
Deli navedeni fajl na više lokacija (svi tagovi koji se podudaraju sa navedenim XPath izrazom). Pogledajte takođe:
split(). Deljenje automatski migrira sve linkove i reference na pogođene fajlove.- Параметри:
before -- Ako je True, deljenja se dešavaju pre identifikovanog elementa, inače posle njega.
- calibre.ebooks.oeb.polish.split.merge(container, category, names, master)[изворни код]¶
Spaja navedene fajlove u jedan fajl, automatski migrirajući sve linkove i reference na pogođene fajlove. Svi fajlovi moraju biti ili HTML ili CSS fajlovi.
- Параметри:
category -- Mora biti ili
'text'za HTML fajlove ili'styles'za CSS fajlovenames -- Lista fajlova za spajanje
master -- Koji od spojenih fajlova je master fajl, to jest, fajl koji će ostati nakon spajanja.
Upravljanje koricama¶
- calibre.ebooks.oeb.polish.cover.set_cover(container, cover_path, report=None, options=None)[изворни код]¶
Postavite korice knjige na sliku na koju ukazuje cover_path.
- Параметри:
cover_path -- Ili apsolutna putanja do datoteke slike ili kanonsko ime slike u knjizi. Kada koristite sliku u knjizi, morate takođe postaviti opcije, pogledajte ispod.
report -- Opcioni poziv koji uzima jedan argument. Biće pozvan sa informacijama o zadacima koji se obrađuju.
options -- None ili rečnik koji kontroliše kako se postavljaju korice. Rečnik može imati unose: keep_aspect: True ili False (Očuvaj razmeru korica u EPUB-u) no_svg: True ili False (Koristi SVG omotač korica na naslovnoj strani EPUB-a) existing: True ili False (
cover_pathse odnosi na postojeću sliku u knjizi)
- calibre.ebooks.oeb.polish.cover.mark_as_cover(container, name)[изворни код]¶
Označite navedenu sliku kao sliku korica.
- calibre.ebooks.oeb.polish.cover.mark_as_titlepage(container, name, move_to_start=True)[изворни код]¶
Označite navedenu HTML datoteku kao naslovnu stranu EPUB-a.
- Параметри:
move_to_start -- Ako je True, HTML fajl se premešta na početak redosleda čitanja (spine).
Rad sa CSS-om¶
- calibre.ebooks.oeb.polish.fonts.change_font(container, old_name, new_name=None)[изворни код]¶
Promenite porodicu fontova sa old_name na new_name. Menja sva pojavljivanja porodice fontova u stilovima, oznakama stila i atributima stila. Ako se old_name odnosi na ugrađeni font, on se uklanja. Možete postaviti new_name na None da biste uklonili porodicu fontova umesto da je promenite.
- 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)[изворни код]¶
Uklonite sva nekorišćena CSS pravila iz knjige. Nekorišćeno CSS pravilo je ono koje se ne podudara ni sa jednim stvarnim sadržajem.
- Параметри:
report -- Opcioni poziv koji uzima jedan argument. Poziva se sa informacijama o operacijama koje se izvode.
remove_unused_classes -- Ako je True, atributi klase u HTML-u koji se ne podudaraju ni sa jednim CSS pravilom se takođe uklanjaju.
merge_rules -- Ako je True, pravila sa identičnim selektorima se spajaju.
merge_rules_with_identical_properties -- Ako je True, pravila sa identičnim svojstvima se spajaju.
remove_unreferenced_sheets -- Ako je True, stilovi koji nisu referencirani ni u jednom sadržaju se uklanjaju.
- calibre.ebooks.oeb.polish.css.filter_css(container, properties, names=())[изворни код]¶
Uklonite navedena CSS svojstva iz svih CSS pravila u knjizi.
- Параметри:
properties -- Skup svojstava za uklanjanje. Na primer:
{'font-family', 'color'}.names -- Fajlovi iz kojih se uklanjaju svojstva. Podrazumevano su svi HTML i CSS fajlovi u knjizi.
Rad sa sadržajem (Table of Contents)¶
- calibre.ebooks.oeb.polish.toc.from_xpaths(container, xpaths, prefer_title=False)[изворни код]¶
Napravite sadržaj iz liste XPath izraza. Svaki izraz u listi odgovara nivou generisanog sadržaja. Na primer:
['//h:h1', '//h:h2', '//h:h3']će generisati sadržaj u tri nivoa iz oznaka<h1>,<h2>i<h3>.
- calibre.ebooks.oeb.polish.toc.from_links(container)[изворни код]¶
Napravite sadržaj iz linkova u knjizi.
- calibre.ebooks.oeb.polish.toc.from_files(container)[изворни код]¶
Napravite sadržaj iz fajlova u knjizi.
- calibre.ebooks.oeb.polish.toc.create_inline_toc(container, title=None)[изворни код]¶
Napravite ugrađeni (HTML) sadržaj iz postojećeg NCX sadržaja.
- Параметри:
title -- Naslov za ovaj sadržaj.
Alatka za uređivanje knjiga¶
- class calibre.gui2.tweak_book.plugin.Tool[изворни код]¶
Bases:
objectOsnovna klasa za pojedinačne alate u dodatku za uređivanje knjiga. Korisni članovi uključuju:
self.plugin: Referenca nacalibre.customize.Pluginobjekat kojem ovaj alat pripada.self.
bossself.
gui
Metodi koji moraju da se nadjačaju u potklasama:
- name: str | None = None¶
Postavite ovo na jedinstveno ime, koristiće se kao ključ
- allowed_in_toolbar = True¶
Ako je True, korisnik može izabrati da postavi ovaj alat na traku sa alatkama dodataka
Ako je True, korisnik može izabrati da postavi ovaj alat u meni dodataka
- toolbar_button_popup_mode = 'delayed'¶
Režim iskačućeg prozora za meni (ako postoji) dugmeta na traci sa alatkama. Moguće vrednosti su 'delayed', 'instant', 'button'
- property boss¶
calibre.gui2.tweak_book.boss.Bossobjekat. Koristi se za kontrolu korisničkog interfejsa.
- property gui¶
Glavni prozor korisničkog interfejsa
- property current_container¶
Vraća trenutni
calibre.ebooks.oeb.polish.container.Containerobjekat koji predstavlja knjigu koja se uređuje.
- register_shortcut(qaction, unique_name, default_keys=(), short_text=None, description=None, **extra_data)[изворни код]¶
Registruje prečicu na tastaturi koja će pokrenuti navedeni
qaction. Ova prečica na tastaturi će postati automatski prilagodljiva od strane korisnika u odeljku Prečice na tastaturi u postavkama uređivača.- Параметри:
qaction -- QAction objekat, biće pokrenut kada korisnik pritisne konfigurisanu kombinaciju tastera.
unique_name -- Jedinstveno ime za ovu prečicu/akciju. Koristiće se interno, ne sme se deliti sa bilo kojim drugim akcijama u ovom dodatku.
default_keys -- Lista podrazumevanih prečica na tastaturi. Ako nije navedeno, neće biti postavljene podrazumevane prečice. Ako se prečice navedene ovde sukobljavaju sa ugrađenim prečicama ili prečicama iz korisničke konfiguracije/drugih dodataka, biće ignorisane. U tom slučaju, korisnici će morati ručno da konfigurišu prečice preko Postavki. Na primer:
default_keys=('Ctrl+J', 'F9').short_text -- Opcioni kratak opis ove akcije. Ako nije navedeno, koristiće se tekst iz QAction.
description -- Opcioni duži opis ove akcije, koristiće se u unosu postavki za ovu prečicu.
- create_action(for_toolbar=True)[изворни код]¶
Kreira QAction koji će biti dodat na traku sa alatkama dodataka ili u meni dodataka u zavisnosti od
for_toolbar. Na primer: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
See also
Metod
register_shortcut().
Kontrolisanje korisničkog interfejsa uređivača¶
Korisnički interfejs uređivača e-knjiga kontroliše jedan globalni Boss objekat. On ima mnogo korisnih metoda koje se mogu koristiti u kodu dodatka za obavljanje uobičajenih zadataka.
- class calibre.gui2.tweak_book.boss.Boss(parent, notify=None)[изворни код]¶
- add_savepoint(msg)[изворни код]¶
Napravite tačku za vraćanje sa imenom navedenim kao
msg
- apply_container_update_to_gui(mark_as_modified=True)[изворни код]¶
Ažurirajte sve komponente korisničkog interfejsa da odražavaju najnovije podatke u trenutnom kontejneru knjige.
- Параметри:
mark_as_modified -- Ako je True, knjiga će biti označena kao izmenjena, tako da će korisnik biti upitan da je sačuva pri izlasku.
- close_editor(name)[изворни код]¶
Zatvorite uređivač koji uređuje fajl naveden sa
name
- commit_all_editors_to_container()[изворни код]¶
Potvrdite sve promene koje je korisnik napravio u fajlovima otvorenim u uređivačima u kontejner. Trebalo bi da pozovete ovaj metod pre izvođenja bilo kakvih akcija na trenutnom kontejneru
- property currently_editing¶
Vratite ime fajla koji se trenutno uređuje ili None ako se nijedan fajl ne uređuje
- edit_file(name, syntax=None, use_template=None)[изворни код]¶
Otvorite fajl naveden po imenu u uređivaču
- Параметри:
syntax -- Medijski tip fajla, na primer,
'text/html'. Ako nije naveden, pogađa se iz ekstenzije fajla.use_template -- Šablon za inicijalizaciju otvorenog uređivača
- open_book(path=None, edit_file=None, clear_notify_data=True, open_folder=False, search_text=None)[изворни код]¶
Otvorite e-knjigu na
pathza uređivanje. Prikazaće grešku ako e-knjiga nije u podržanom formatu ili trenutna knjiga ima nesačuvane promene.- Параметри:
edit_file -- Ime fajla unutar novootvorene knjige za početak uređivanja. Može biti i lista imena.
- rewind_savepoint()[изворни код]¶
Poništi prethodno kreiranje tačke za vraćanje, korisno ako kreirate tačku, a zatim prekinete operaciju bez promena
- save_book()[изворни код]¶
Sačuvajte knjigu. Čuvanje se obavlja u pozadini
- set_modified()[изворни код]¶
Označite knjigu kao izmenjenu
- show_current_diff(allow_revert=True, to_container=None)[изворни код]¶
Prikazuje promene u knjizi u odnosu na poslednju kontrolnu tačku.
- Параметри:
allow_revert -- Ako je True, dijalog za razlike će imati dugme koje omogućava korisniku da poništi sve promene
to_container -- Objekat kontejnera s kojim treba uporediti trenutni kontejner. Ako je None, koristi se kontejner sa prethodne kontrolne tačke.
- show_editor(name)[изворни код]¶
Prikažite uređivač koji uređuje fajl naveden sa
name
- sync_preview_to_editor()[изворни код]¶
Sinhronizujte poziciju panela za pregled sa trenutnom pozicijom kursora u trenutnom uređivaču
