Oprogramowanie i wykorzystanie stacji roboczych. Wykład 4



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

Qt sygnały i designer

Praca z aplikacją designer

Programowanie w środowiskach RAD Qt i C++

Implementacja aplikacji sieciowych z wykorzystaniem środowiska Qt

Podstawy programowania w Qt4

Qt - podstawowe cechy

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

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

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

Mechanizm sygnałów i slotów. Oprogramowanie i wykorzystanie stacji roboczych. Wykład 4. Sygnały i sloty - definicja klasy

Programowanie w środowiskach RAD QtCreator, Qt i C++

Signals + Threads: Qt vs. Boost

Weryfikatory, zasoby graficzne

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

X Window System (I) Oprogramowanie i wykorzystanie stacji roboczych. Wykład 1. X Window System (III) X Window System (II)

System X Window (I) Oprogramowanie i wykorzystanie stacji roboczych. Wykład 3. System X Window (III) System X Window (II)

Oprogramowanie i wykorzystanie stacji roboczych. Wykład 3

Zaawansowane programowanie w C++

Qt in Education. Sieć I drukowanie

Programowanie obiektowe

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

Wprowadzenie do tworzenia zaawansowanych interfejsów graficznych: QGraphics View Framework vs. QML. Jakub Bogacz. Patryk Górniak

Szablony funkcji i szablony klas

Qt po polsku. Bogdan Kreczmer.

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Qt - edycja, obsługa zdarzeń, rozmieszczenie kontrolek

Systemy operacyjne na platformach mobilnych

Podstawy wzorca MVC MODEL KON- TROLER WIDOK. Odpowiada za wyświetlenie danych użytkownikowi. Zawiera dane aplikacji oraz jej logikę.

Komunikacja z użyciem gniazd aplikacje klient-serwer

Programowanie, część III

Zasoby, pliki graficzne

Wprowadzenie do szablonów klas

SOAP i alternatywy. 1. WSDL. 2. Protokoły tekstowe XML-RPC. JSON-RPC. SOAPjr. 3. Protokoły binarne Google Protocol Bufers. Apache Thrift.

Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton

Poznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner

Instytut Teleinformatyki

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

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

Usługi WWW. dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska Opole zlipinski@math.uni.opole.pl

akademia androida Service, BroadcastReceiver, ContentProvider część IV

Programowanie Komponentowe WebAPI

Wprowadzenie do szablonów szablony funkcji

Zdalne wywołanie metod - koncepcja. Oprogramowanie systemów równoległych i rozproszonych Wykład 7. Rodzaje obiektów. Odniesienie do obiektu

Oprogramowanie systemów równoległych i rozproszonych Wykład 7

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

Programowanie proceduralne INP001210WL rok akademicki 2015/16 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

Zaawansowane aplikacje WWW - laboratorium

1 Wprowadzenie do J2EE

Pobieranie argumentów wiersza polecenia

Zaawansowane programowanie w języku C++ Funkcje uogólnione - wzorce

Wstęp do Programowania 2

Wprowadzenie do szablonów szablony funkcji

Oprogramowanie systemów równoległych i rozproszonych. Wykład 6

akademia androida Składowanie danych część VI

MVC w praktyce tworzymy system artykułów. cz. 2

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Projektowanie aplikacji w modelu MVC opartej o framework CodeIgniter

Podział programu na moduły

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

Architektury systemów rozproszonych LABORATORIUM. Ćwiczenie 1

Projektowanie obiektowe. Roman Simiński Wzorce projektowe Wybrane wzorce strukturalne

Wprowadzenie do programowania i programowanie obiektowe

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016

Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający. Pakiety wrapfig i listings. 1. Pakiet wrapfig. 21 marca 2015

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse

Qt hierarchia elementów graficznych

Procesy. Systemy Operacyjne 2 laboratorium. Mateusz Hołenko. 9 października 2011

// Liczy srednie w wierszach i kolumnach tablicy "dwuwymiarowej" // Elementy tablicy są generowane losowo #include <stdio.h> #include <stdlib.

Realizacja Aplikacji Internetowych 2013 laboratorium cz. 2 K.M. Ocetkiewicz

Specyfikacja implementacyjna aplikacji mobilnej

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

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

Programowanie w Sieci Internet Blok 2 - PHP. Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019

Wstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008

Języki i paradygmaty programowania 1 studia stacjonarne 2018/19. Lab 9. Tablice liczbowe cd,. Operacje na tablicach o dwóch indeksach.

Sosnowiec, dn... Imię i nazwisko...

Krótkie wprowadzenie do korzystania z OpenSSL

Programowanie obiektowe

Dostęp do komponentów EJB przez usługi Web Services

Wstęp do wiadomości teoretycznych (nie, nie jest to masło maślane ani wstęp, wstępów proszę cierpliwie czytać)

I - Microsoft Visual Studio C++

Java JMX. Marcin Werla. Monitorowanie i zarządzanie usługami sieciowymi w Javie. mwerla@man.poznan.pl PCSS/Poznań JUG

Przykład. Podaj nazwę domenową hosta a odczytaj jego adres IP, lub odwrotnie:

Katalog książek cz. 2

JAX-RS czyli REST w Javie. Adam Kędziora

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Zdalne wywoływanie procedur RPC. Dariusz Wawrzyniak 1

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Komunikacja i wymiana danych

DTD - encje ogólne i parametryczne, przestrzenie nazw

Język C++ wykład VI. uzupełnienie notatek: dr Jerzy Białkowski. Programowanie C/C++ Język C++ wykład VI. dr Jarosław Mederski.

Wykład 4. Tablice. Pliki

Transkrypt:

Wykład 4 p. 1/1 Oprogramowanie i wykorzystanie stacji roboczych Wykład 4 Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska

Obsługa sieci Wykład 4 p. 2/1 W bibliotece Qt do obsługi protokołów FTP i HTTP służa klasy QFtp i QHttp. Zostały one zbudowane w oparciu o klasę QSocket, która opakowuje gniazdka w domenie TCP. Klasa QSocket dziedziczy po klasie QSocketDevice, która mapuje wywołania funkcji bezpośrednio do (specyficznej dla danej architektury) API sieciowego. Połaczenia przy wykorzystaniu klasy QSocketDevice moga odbywać się zarówno po protokole TCP, jak również UDP.

QHttp Wykład 4 p. 3/1 Klasa QHttp implementuje protokół HTTP po stronie klienta. Zawiera zbiór metod realizujacych operacje HTTP, w tym metody get(), post(). Polecenia HTTP wykonywane sa asynchronicznie. Powrót z metody realizujacej dana operację następuje bezpośrednio po jej wywołaniu. Polecenie jest wykonywane w tle. Po zakończeniu wykonywania polecenia sa generowane sygnały requestfinished(int id, bool error), done(bool).

QHttp - przykład I Wykład 4 p. 4/1 #include <QApplication> #include "getfile.h" int main(int argc, char** argv) { QApplication app(argc, argv); GetFile getfile; getfile.resize(210, 70); getfile.show(); app.exec(); if (getfile.isok()) execlp("acroread", "acroread", "/tmp/slides.pdf", NULL); } return 0;

QHttp - przykład II Wykład 4 p. 5/1 class GetFile: public QWidget { Q_OBJECT public: GetFile(QWidget *parent = 0); bool IsOk() const; public slots: void Done(bool); void Show(); private: QHttp http; QFile file; QSpinBox *number; bool ok; };

QHttp - przykład III Wykład 4 p. 6/1 GetFile::GetFile(QWidget *parent): QWidget(parent), ok(false) { number = new QSpinBox(this); number->setvalue(1); number->setgeometry(20, 20, 50, 30); QPushButton *show = new QPushButton("Show", this); show->setgeometry(90, 20, 100, 30); } connect(show, SIGNAL(clicked()), this, SLOT(Show()));

QHttp - przykład IV Wykład 4 p. 7/1 void GetFile::Done(bool error) { ok =!error; file.close(); qapp->quit(); } void GetFile::Show() { file.setfilename("/tmp/slides.pdf"); http.sethost("icis.pcz.pl"); QString filename; filename = QString("/~olas/osr/wyklad%1.pdf").arg(number->value()); http.get(filename, &file); connect(&http, SIGNAL(done(bool)), this, SLOT(Done(bool))); }

Internacjonalizacja i lokalizacja Wykład 4 p. 8/1 Internacjonalizacja (umiędzynaradawianie) oprogramowania, czyli wprowadzenie do programu możliwości obsługi wyświetlania komunikatów i dokumentacji w wielu różnych językach - oznaczany przez skrót i18n. Lokalizacja oprogramowania, czyli przetłumaczenie komunikatów w programie na dany język lub dialekt, a także dostosowanie programu do konwencji obowiazuj acych w danym języku/dialekcie - między innymi sposobu sortowania liter w alfabecie, używanych jednostek miary, albo formatów dat - oznaczany przez skrót i10n.

Internacjonalizacja (I) Wykład 4 p. 9/1 Internacjonalizacja w Qt jest realizowana przy wykorzystaniu dwóch typów plików ts i qm. Pliki ts sa wykorzystywane podczas tworzenia oprogramowania (format XML). Pliki qm sa plikami binarnymi używanymi w czasie uruchamiania aplikacji. Powstaja one na podstawie plików ts w etapie translacji (releasing). W przypadku korzystania z narzędzia qmake w celu dodania nowej wersji językowej aplikacji należy do pliku projektu (rozszerzenie pro) dodać makrodefinicję TRANSLATIONS += paint_pl_pl.ts

Wykład 4 p. 10/1 Internacjonalizacja (II) Kolejnym etapem jest wydobycie z plików projektu wszystkich elementów, które moga się różnić w zależności od języka. Elementy takie (łańcuchy) sa automatycznie identyfikowane w plikach przez narzędzie lupdate po umieszczeniu ich w makrze tr() - (edit->settext(tr("hello", "Tekst powitalny"))): lupdate paint.pro <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE TS><TS version="1.1"> <context> <name>mywidget</name> <message> <location filename="mywidget.cpp" line="17"/> <source>hello</source> <comment>tekst powitalny</comment> <translation type="unfinished"></translation> </message> </context> </TS>

Qt Linguist Wykład 4 p. 11/1

Wykład 4 p. 12/1 The Model-View Framework Wzorzec projektowy model-widok jest bardzo często wykorzystywany w tworzeniu oprogramowania. W standardowym wzorcu projektowym MVC (model-view controller) model opisuje dane, widok służy do reprezentowania (renderowania) modelu (danych), natomiast zadaniem kontrolera jest zarzadzanie modyfikacja danych. W bibliotece Qt zrezygnowano z komponentu kontrolera.

Wykład 4 p. 13/1 The Model-View Framework W bibliotece Qt modele sa używane do opisu takich struktur jak listy, tabele i drzewa.