Krzysztof Wesołowski Programowanie, elektronika, automatyka – doświadczenia i projekty

4sty/09

Używanie klasy QSyntaxHighlighter z bibliotek QT 4.4

W ramach dodatkowego projektu z programowania w języku C++ wykonałem małą aplikację demonstrującą użycie klasy QSyntaxHighlighter z bibliotek Qt do kolorowania składni. Stworzona klasa HSyntaxHighlighter wykorzystuje przygotowane przez twórców Qt elementy co ułatwiło jej wykonanie. Program w prosty sposób koloruje składnie zgodnie z ustawieniami, umożliwia również dostosowanie kolorowania każdego rodzaju kodu do swoich potrzeb za pomocą:

  • wyboru czcionki odpowiedzialnej za daną część kodu
  • wyboru koloru czcionki
  • wyboru tła
  • oraz edycji wyrażeni/wyrażeń regularnych odpowiedzialnych za rozpoznawanie tekstu

Program obsługuje podstawowe bloki

  • Komentarz jednoliniowy
  • Komentarz wieloliniowy
  • Stałe znakowe
  • Stałe liczbowe
  • Dyrektywy preprocesora
  • Słowo kluczowe/zarezerwowane

ale jego struktura umożliwia łatwe dodawanie własnych bloków (poprzez edycje kilku stałych wartości przed kompilacją)

Ustawienia dotyczące kolorowania są przechowywane w plikach *.ini, za pomocą klasy QSettings.

Program został napisany w  środowisku Eclipse CDT , z dodatkami QtEclipseIntegration do tworzenie interfejsu oraz Eclox w celu ułatwienia używania doxygen'a zaś kod został w całości udokumentowany (w j. angielskim) zgodnie z składnią Doxygen.

Zapraszam do przejrzenia i zgłaszania uwag.

Cały program objęty jest licencją GPL 3.0, źródła dostępne poniżej.

Syntax Highlighter 1.0 (wraz z plikami DLL od Qt)

Syntax Highlighter 1.0 (tylko plik exe)

Syntax Highlighter 1.0 (źródła)

Syntax Highlighter 1.0 (dokumentacja)

Licencja GPL 3.0

Wersja 1.1

Poprawiono:

dynamiczna edycja listy bloków, kilka poprawek estetycznych. Bloki podświetlają się niezależnie, po kolei.

Syntax Highlighter 1.1 (wraz z plikami DLL od Qt)

Syntax Highlighter 1.1 (tylko plik exe)

Syntax Highlighter 1.1 (źródła)

Syntax Highlighter 1.1 (dokumentacja)

Licencja GPL 3.0

Komentarze (0) Trackbacks (0)

Brak komentarzy.


Leave a comment

(required)

Brak trackbacków.