Thread View: pl.comp.lang.c
1 messages
1 total messages
Started by szykcech
Fri, 04 Jan 2019 20:29
Czy takie cuda są w ogóle możliwe w C++?!?
Author: szykcech
Date: Fri, 04 Jan 2019 20:29
Date: Fri, 04 Jan 2019 20:29
22 lines
3100 bytes
3100 bytes
Witam [Wprowadzenie] W QPlainTextEdit jest coś takiego jak blok (normalnie 1 linia tekstu). Blok może mieć zmienną dziedziczoną po QTextBlockUserData. Problem w tym, że chcę użyć biblioteki KSyntaxHighlighting z Kde (teraz robią ze wszystkiego moduły, tak, że można sobie stosować różne części Kde w swoich projektach). Główny argument za tą biblioteką jest wsparcie dla kolorowania ponad 200 rodzajów plików. [Problem] KSyntaxHighlighting ma klasę SyntaxHighlighter która korzysta z QTextBlockUserData, jest to klasa TextBlockUserData. I teraz ja chcę rozszerzyć klasę TextBlockUserData w ten sposób: class SyntaxHighlighterLineInfo : public TextEditor::EditorLineInfo, KSyntaxHighlighting::TextBlockUserData Chodzi o to, że TextEditor::EditorLineInfo jest znane mojemu edytorowi, ale całkowicie nie znana jest mu klasa kolorująca składnię (SyntaxHighlighter z Kde). I teraz chcę rzutować TextEditor::EditorLineInfo na QTextBlockUserData. Ale to nie za bardzo chce działać... Rzutowanie dynamic_cast zgłasza, że TextEditor::EditorLineInfo nie jest polimorficzną klasą (bo nie jest), static_cast zgłasza błąd, że klasy nie są powiązane dziedziczeniem. reinterpret_cast nie zgłasza błędu ale wywala program przy próbie użycia obiektu jako QTextBlockUserData. Podobnie jak klasyczne rzutowanie w C. [Motywacje] Dla mnie bardzo ważne jest by mieć jednoczesne zachowanie mojego TextEditor::EditorLineInfo, KSyntaxHighlighting::TextBlockUserData i QTextBlockUserData. Jednak z zastrzeżeniem, żeby mój edytor (potomek QPlainTextEdit) nic nie wiedział o klasie SyntaxHighlighter z KSyntaxHighlighting. Dlatego, że chcę mieć program modułowy, gdzie pluginy (m. in. z edytorami i kolorowaniem składni) można wymieniać osobno bez oglądania się na zbędne powiązania. z góry dzięki i pozdro Szyk Cech
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads