Qt po polsku. Bogdan Kreczmer.



Podobne dokumenty
Aplikacja po polsku. Bogdan Kreczmer. ZPCiR ICT PWr pokój 307 budynek C3.

Praca z aplikacją designer

Qt sygnały i designer

Qt sygnały i sloty. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Wydział Elektroniki Politechnika Wrocławska

Wartości domyślne, szablony funkcji i klas

Wprowadzenie do szablonów klas

Przykład implementacji przeciażeń operatorów problem kolizji

Oprogramowanie i wykorzystanie stacji roboczych. Wykład 4

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk. Wydział Inżynierii Metali i Informatyki Przemysłowej

Szablony funkcji i szablony klas

Schemat konstrukcja pliku Makefile

Qt - podstawowe cechy

Przestrzenie nazw. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Politechnika Wrocławska

Zasoby, pliki graficzne

Ćwiczenia IV - Kontenery (pojemniki)

Wprowadzenie do programowania i programowanie obiektowe

Funkcje składowe (metody)

Dalmierze optyczne. Bogdan Kreczmer.

Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące.

Weryfikatory, zasoby graficzne

Qt - dialogi. Bogdan Kreczmer. ZPCiR ICT PWR pokój 307 budynek C3

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Operacje wejścia/wyjścia (odsłona druga) - pliki

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 3. Instrukcje wyboru

Qt hierarchia elementów graficznych

Laboratorium 1. Programowanie II - Kierunek Informatyka. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej

Operacje wejścia/wyjścia odsłona pierwsza

The Graphics View Framework. Oprogramowanie i wykorzystanie stacji roboczych. Wykład 5. he Graphics View Framework - architektura

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

DEMERO Automation Systems

Preprocesor języka C

SFML. (Simple and Fast Multimedia Library)

GStreamer. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Wydziału Elektroniki Politechnika Wrocławska

Algorytmy i Struktury Danych.

Programowanie i struktury danych

Zaawansowane programowanie w C++

Wstęp do Programowania, laboratorium 02

Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 12 - sem.iii. M. Czyżak

Część 4 życie programu

Czujniki PSD i dalmierze triangulacyjne

I - Microsoft Visual Studio C++

Wstęp do Informatyki

Wyjątki. Wyjątki. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Politechnika Wrocławska

Wartości domyślne, przeciażenia funkcji

Składnia C++ Programowanie Obiektowe Mateusz Cicheński

Wskaźniki. Informatyka

Konstruktor kopiujacy

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.


Pliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego

// Potrzebne do memset oraz memcpy, czyli kopiowania bloków

Programowanie w środowiskach RAD Qt i C++

Geneza C++, manipulatory

Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw

Programowanie obiektowe w C++ Wykład 11

Szablon klasy std::vector

Przesłanianie nazw, przestrzenie nazw

Warszawa, dn. 12 lipca 2011 r. ZAPYTANIE OFERTOWE

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char

1 Pierwsze kroki w C++ cz.3 2 Obsługa plików

Programowanie 2. Język C++. Wykład 2.

Rozwiązanie. #include <cstdlib> #include <iostream> using namespace std;

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Materiał. Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Funkcje Wskaźniki Referencje Tablice dynamiczne Typ string Przeładowania funkcji

Programowanie Obiektowew języku C++ Zadania L4

wykład IV uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C, a C++. wykład IV dr Jarosław Mederski Spis Język C++ - wstęp

Wstęp do programowania. Dariusz Wardecki, wyk. X

Pobieranie argumentów wiersza polecenia

Bogdan Kreczmer. Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska

Programowanie Procedurale. Pliki w języku C++

Wykład VI. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Ćwiczenie nr 2 Zbiory rozmyte logika rozmyta Rozmywanie, wnioskowanie, baza reguł, wyostrzanie

TEMAT : KLASY POLIMORFIZM

Zapytanie ofertowe: Dostawa materiałów promocyjnych w ramach realizacji projektu pn. Opracowanie Programu

Procedura aktualizacji dekodera - transponder 27, satelita Astra 4A

Rekurencja. Przygotowała: Agnieszka Reiter

Język JAVA podstawy. wykład 1, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Krótki wstęp do biblioteki OpenCV. Jak wykorzystać kamerkę internetową do przetwarzania obrazów.

I. 1) NAZWA I ADRES: Katolicki Uniwersytet Lubelski Jana Pawła II, Al. Racławickie 14,

for (i=1; i<=10; i=i+1) instrukcja; instrukcja zostanie wykonana 10 razy for (inicjalizacja; test; aktualizacja) instrukcja;

Wartości domyślne, przeciażenia funkcji

Języki i metodyka programowania. Wprowadzenie do języka C

C++. Wykorzystaj potêgê aplikacji graficznych

Przeniesienie lekcji SITA z płyt CD na ipoda touch

Papyrus. Papyrus. Katedra Cybernetyki i Robotyki Politechnika Wrocławska

Czujniki PSD i dalmierze triangulacyjne

Techniki Programowania wskaźniki 2

Projektowanie klas c.d. Projektowanie klas przykład

Składnia C++ Programowanie Obiektowe Mateusz Cicheński

Programowanie w językach

Podział programu na moduły

Pola i metody statyczne

J. Ułasiewicz Programowanie aplikacji współbieżnych 1

Katedra Cybernetyki i Robotyki. Księga identyfikacji wizualnej

Tworzenie wielopoziomowych konfiguracji sieci stanowisk asix z separacją segmentów sieci - funkcja POMOST. Pomoc techniczna

Typ dokumentu: specyfikacja techniczna

Przykładowe stawki kosztów podlegających refundacji w ramach działania Funkcjonowanie LGD

Szablony, wybrane elementy biblioteki STL

Transkrypt:

Qt po polsku Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2013 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu dotyczącego programowania obiektowego. Jest on udostępniony pod warunkiem wykorzystania wyłącznie do własnych prywatnych potrzeb i może on być kopiowany wyłącznie w całości, razem z niniejszą stroną tytułową. Qt po polsku

Niniejsza prezentacja została wykonana przy użyciu systemu składu L A TEX oraz stylu beamer, którego autorem jest Till Tantau. Strona domowa projektu Beamer: http://latex-beamer.sourceforge.net Qt po polsku

1 Kodowanie znaków 2 Korzystanie z metod translacji na poziomie Qt Realizacja tłumaczenia Qt po polsku

Znaki diakrytyczne Kodowanie znaków #include <QApplication> #include <QMessageBox> int main( int argc, char argv[ ] ) QApplication App( argc, argv ); QMessageBox Info(NULL); Info.about(NULL,QObject::tr( Informacja z tłumaczeniem ), QObject::tr( Polskie znaki diakrytyczne:\n ąęćłńóśźż ĄĘĆŁŃÓŚŹŻ ));

Znaki diakrytyczne Kodowanie znaków #include <QApplication> #include <QMessageBox> int main( int argc, char argv[ ] ) QApplication App( argc, argv ); QMessageBox Info(NULL); Info.about(NULL,QObject::tr( Informacja z tłumaczeniem ), QObject::tr( Polskie znaki diakrytyczne:\n ąęćłńóśźż ĄĘĆŁŃÓŚŹŻ ));

Kodowanie napisów w dla metod tr #include <QApplication> #include <QMessageBox> #include <QTextCodec> #include <iostream> using namespace std; int main( int argc, char argv[ ] ) QApplication App( argc, argv ); QMessageBox Info(NULL); QTextCodec wkodowanieutf8 = QTextCodec::codecForName( UTF-8 ); if (wkodowanieutf8) QTextCodec::setCodecForTr(wKodowanieUTF8); else cerr <<!!! Brak kodowania: UTF-8 << endl; Info.about(NULL,QObject::tr( Informacja z tłumaczeniem ), QObject::tr( Polskie znaki diakrytyczne:\n ąęćłńóśźż ĄĘĆŁŃÓŚŹŻ ));

Kodowanie napisów w sensie języka C #include <QApplication> #include <QMessageBox> #include <QTextCodec> #include <iostream> using namespace std; int main( int argc, char argv[ ] ) QApplication App( argc, argv ); QMessageBox Info(NULL); QTextCodec wkodowanieutf8 = QTextCodec::codecForName( UTF-8 ); if (wkodowanieutf8) QTextCodec::setCodecForTr(wKodowanieUTF8); else cerr <<!!! Brak kodowania: UTF-8 << endl; Info.about(NULL,QObject::tr( Informacja ze zwykłym łańcuchem znaków ), Ale bajzel!!!\n Co z tymi znakami??!!\n Polskie znaki diakrytyczne:\n ąęćłńóśźż ĄĘĆŁŃÓŚŹŻ );

Kodowanie napisów w sensie języka C #include <QApplication> #include <QMessageBox> #include <QTextCodec> #include <iostream> using namespace std; int main( int argc, char argv[ ] ) QApplication App( argc, argv ); QMessageBox Info(NULL); QTextCodec wkodowanieutf8 = QTextCodec::codecForName( UTF-8 ); if (wkodowanieutf8) QTextCodec::setCodecForTr(wKodowanieUTF8); else cerr <<!!! Brak kodowania: UTF-8 << endl; Info.about(NULL,QObject::tr( Informacja ze zwykłym łańcuchem znaków ), Ale bajzel!!!\n Co z tymi znakami??!!\n Polskie znaki diakrytyczne:\n ąęćłńóśźż ĄĘĆŁŃÓŚŹŻ );

Kodowanie napisów w sensie języka C #include <QApplication> #include <QMessageBox> #include <QTextCodec> #include <iostream> using namespace std; int main( int argc, char argv[ ] ) QApplication App( argc, argv ); QMessageBox Info(NULL); QTextCodec wkodowanieutf8 = QTextCodec::codecForName( UTF-8 ); if (wkodowanieutf8) QTextCodec::setCodecForTr(wKodowanieUTF8); QTextCodec::setCodecForCStrings(wKodowanieUTF8); else cerr <<!!! Brak kodowania: UTF-8 << endl; Info.about(NULL,QObject::tr( Informacja ze zwykłym łańcuchem znaków ), Ale bajzel!!!\n Co z tymi znakami??!!\n Polskie znaki diakrytyczne:\n ąęćłńóśźż ĄĘĆŁŃÓŚŹŻ );

Zmiana czcionki Kodowanie znaków... int main( int argc, char argv[ ] ) QApplication App( argc, argv ); QMessageBox Info(NULL); QTextCodec wkodowanieutf8 = QTextCodec::codecForName( UTF-8 ); QFont CzcionkaAplikacji(QApplication::font()); CzcionkaAplikacji.setFamily( Fixed [Misc] ); CzcionkaAplikacji.setPointSize( 14 ); CzcionkaAplikacji.setBold(true); CzcionkaAplikacji.setItalic(true); CzcionkaAplikacji.setUnderline(true); QApplication::setFont(CzcionkaAplikacji);...

Zmiana czcionki Kodowanie znaków... int main( int argc, char argv[ ] ) QApplication App( argc, argv ); QMessageBox Info(NULL); QTextCodec wkodowanieutf8 = QTextCodec::codecForName( UTF-8 ); QFont CzcionkaAplikacji(QApplication::font()); CzcionkaAplikacji.setFamily( Fixed [Misc] ); CzcionkaAplikacji.setPointSize( 14 ); CzcionkaAplikacji.setBold(true); CzcionkaAplikacji.setItalic(true); CzcionkaAplikacji.setUnderline(true); QApplication::setFont(CzcionkaAplikacji);...

Zmiana czcionki Kodowanie znaków... int main( int argc, char argv[ ] ) QApplication App( argc, argv ); QMessageBox Info(NULL); QTextCodec wkodowanieutf8 = QTextCodec::codecForName( UTF-8 ); QFont CzcionkaAplikacji(QApplication::font()); CzcionkaAplikacji.setFamily( Fixed [Misc] ); CzcionkaAplikacji.setPointSize( 14 ); CzcionkaAplikacji.setBold(true); CzcionkaAplikacji.setItalic(true); CzcionkaAplikacji.setUnderline(true); QApplication::setFont(CzcionkaAplikacji);...

Korzystanie z metod translacji Korzystanie z metod translacji na poziomie Qt Realizacja tłumaczenia Żle: const char wnapis = To należy przetłumaczyć ; QString TlumaczonyNapis = wnapis; Dobrze: QString TlumaczonyNapis = tr( To należy przetłumaczyć ); Żle: QString NazwaPliku;... statusbar( ) >message( tr( Nie znaleziono pliku: + NazwaPliku) ); Dobrze: statusbar( ) >message( tr( Nie znaleziono pliku: %1 ).arg(nazwapliku) );

Korzystanie z metod translacji Korzystanie z metod translacji na poziomie Qt Realizacja tłumaczenia Nie zaleca się podstawiania do zmiennych napisów, które mają być tlumaczone. Jeżeli jest to konieczne, należy to uczynić z zastosowaniem makr QT TR NOOP lub QT TRANSLATION NOOP, np. const char const TabNapisow[ ] = QT TR NOOP( Napis tłumaczony 1 ), QT TR NOOP( Napis tłumaczony 2 ) ;

Korzystanie z metod translacji na poziomie Qt Realizacja tłumaczenia Podstawowe kroki procedury tłumaczenia 1 Uruchomienie programu lupdate w celu wydzielenia napisów podlegających tłumaczeniu. 2 Tłumaczenie napisów z zastosowaniem aplikacji linguist (Qt Linguist). 3 Uruchomienie lrelease w celu generacji binarnej postaci pliku tłumaczeń (rozszerzenie.qm) ładowalnego przez obiekt klasy QTranslator.

Korzystanie z metod translacji na poziomie Qt Realizacja tłumaczenia Tłumaczenie przykład praktycznej realizacji 0. Jeżeli w aplikacji są napisy po polsku w kodowaniu UTF-8, to wystarczy dodać do projektu wpis: TRANSLATIONS = skromny edytor en.ts Jeżeli kodowanie jest inne np. Latin2 (ISO 8859-2), to niezbędny jest dodatkowy wpis: DEFAULTCODEC = ISO-8859-2 W przypadku realizacji tłumaczeń angielskich napisów w aplikacji na polski nie jest potrzebna dodatkowa informacja o kodowaniu i wystarczy wpis: TRANSLATIONS = skromny edytor pl.ts 1 lupdate -verbose skromny edytor.pro skromny edytor pl.ts 2 linguist skromny edytor pl.ts skromny edytor pl.ts 3 lrelease -verbose skromny edytor.pro skromny edytor pl.qm

Korzystanie z metod translacji na poziomie Qt Realizacja tłumaczenia Najprostszy przykład ładowania tłumaczeń int main(int argc, char argv[ ] ) QApplication App(argc,argv);... QTranslator TlumaczPL; if ( TlumaczPL.load( skromny edytor pl.qm,. ) ) App.installTranslator(&TlumaczPL); else cerr << Plik skromny edytor pl.qm nie zostal zaladowany << endl;... return App.exec( );

Koniec prezentacji Dziękuję za uwagę Qt po polsku