C++/Tk - biblioteka graficzna dla C++ do tworzenia Gui


Wraz z projektem C++/Tk, autorstwa Macieja Sobczaka, powstało proste narzędzie do tworzenia graficznych gui dla języka C++. Programy w C++ ze wstawkami z języka Tk pozwalają nam na tworzenie prostych interfejsów. Ich przykłady wraz z dokumentacją są dostępne na stronie projektu.
Proces instalacji rozpoczyna się od pobrania pakietu cpptk (w najnowszej wersji z działu download) oraz sprawdzenia czy w systemie są zainstalowane programy Tcl, Tk oraz Boost, który można pobrać ze strony http://www.boost.org.
W przypadku pobrania tego programu należy go rozpakować wraz z cpptk do dowolnego katalogu, do którego mamy uprawnienia. U mnie był to katalog /home/andrzej/Bin/cpptk i /home/andrzej/Bin/boost. Programów tych nie trzeba kompilować, ani nic w nich zmieniać (w plikach Makefike).
W następnym kroku należało określić położenie plików nagłówkowych i bibliotek Tcl, Tk oraz boost jako flag do kompilacji. W Slackware 12.0 są to:
-I/usr/include
-I/usr/X11R6/include
-I/home/andrzej/Bin/boost
-L/usr/lib/tcl8.4
-L/usr/lib/tk8.4
-ltcl8.4
-ltk8.4
-lpthread
Proszę zwrócić uwagę na kropki pomiędzy 8 i 4.
Jeden ze sposobów jest bezpośrednia kompilacja polegająca na przekopiowaniu źródła c++ (ze wstawkami cpptk) do katalogu /home/andrzej/Bin/cpptk i wydaniu polecenia kompilacji. W katalogu examples sa przykłady. Ja wybrałem example0.cc i dla niego polecenie kompilacji ma postać:
g++ example0.cc cpptk.cc base/cpptkbase.cc -o example0 -I/usr/include -I/usr/X11R6/include -I/home/andrzej/Bin/boost -L/usr/lib/tcl8.4 -L/usr/lib/tk8.4 -ltcl8.4 -ltk8.4 -lpthread
Można też podać opcje kompilacji w pliku makefile.


Powstaje program o nazwie example0, który po uruchomieniu daje przycisk z napisem.


Źródła skompilowałem z konsoli, a sama kompilacja jest prosta. Nie ma potrzeby kopiowania źródeł do katalogu /home/andrzej/Bin/cpptk lecz wystarczy podać ścieżkę dostępu do źródła (np. g++ /home/andrzej/src/przyklad.cpp ...). Program działa dobrze i dla moich zastosowań w zupełności wystarcza. Poniżej przedstawię zrzuty kilku wybranych przykładów:





Najlepszym rozwiązaniem jest wykorzystanie IDE. Opiszę w punktach jak ja wykorzystuję do tego celu Kdevelop:
- Utworzyłem katalog Develop.
- Rozpakowałem do niego cpptk.
- Przekopiowałem katalog boost i skrypt shella służący do kompilacji.
- Zaimportowałem istniejący projekt.
- Dodałem nowy plik źródłowy (można używać gotowego pliku - "otwórz" z menu "plik" i "zapisz jako" w katalogu z projektem).
- Edytowałem plik kompiluj.sh i wpisałem tam nazwę pliku źródłowego głównego
#!/bin/sh
#set -x
nazwa=example6.cc
a=/home/andrzej/Develop/cpptk001
g++ $a/$nazwa -o $a/$nazwa.bin $a/cpptk.cc $a/base/cpptkbase.cc -I$a/base -I$a/boost -I/usr/include -I/usr/X11R6/include -L/usr/lib/tcl8.4 -L/usr/lib/tk8.4 -ltcl8.4 -ltk8.4 -lpthread
.
- Otworzyłem konsolę i wydałem polecenie kompiluj.sh, w wyniku której powstał program example6.cc.bin.






do góry