Enviar pesquisa
Carregar
C++ STL & Qt. Занятие 04.
•
0 gostou
•
196 visualizações
Igor Shkulipa
Seguir
Паттерн MVP на Qt
Leia menos
Leia mais
Educação
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 13
Baixar agora
Baixar para ler offline
Recomendados
C++ STL & Qt. Занятие 01.
C++ STL & Qt. Занятие 01.
Igor Shkulipa
C++ STL & Qt. Занятие 08.
C++ STL & Qt. Занятие 08.
Igor Shkulipa
C++ STL & Qt. Занятие 05.
C++ STL & Qt. Занятие 05.
Igor Shkulipa
C++ STL & Qt. Занятие 03.
C++ STL & Qt. Занятие 03.
Igor Shkulipa
C++ STL & Qt. Занятие 10.
C++ STL & Qt. Занятие 10.
Igor Shkulipa
C++ STL & Qt. Занятие 02.
C++ STL & Qt. Занятие 02.
Igor Shkulipa
C++ STL & Qt. Занятие 11.
C++ STL & Qt. Занятие 11.
Igor Shkulipa
C++ STL & Qt. Занятие 07.
C++ STL & Qt. Занятие 07.
Igor Shkulipa
Recomendados
C++ STL & Qt. Занятие 01.
C++ STL & Qt. Занятие 01.
Igor Shkulipa
C++ STL & Qt. Занятие 08.
C++ STL & Qt. Занятие 08.
Igor Shkulipa
C++ STL & Qt. Занятие 05.
C++ STL & Qt. Занятие 05.
Igor Shkulipa
C++ STL & Qt. Занятие 03.
C++ STL & Qt. Занятие 03.
Igor Shkulipa
C++ STL & Qt. Занятие 10.
C++ STL & Qt. Занятие 10.
Igor Shkulipa
C++ STL & Qt. Занятие 02.
C++ STL & Qt. Занятие 02.
Igor Shkulipa
C++ STL & Qt. Занятие 11.
C++ STL & Qt. Занятие 11.
Igor Shkulipa
C++ STL & Qt. Занятие 07.
C++ STL & Qt. Занятие 07.
Igor Shkulipa
C++ STL & Qt. Занятие 06.
C++ STL & Qt. Занятие 06.
Igor Shkulipa
C++ STL & Qt. Занятие 09.
C++ STL & Qt. Занятие 09.
Igor Shkulipa
Java Core. Lecture# 5. Concurrency.
Java Core. Lecture# 5. Concurrency.
Anton Moiseenko
Java осень 2014 занятие 3
Java осень 2014 занятие 3
Technopark
Java осень 2014 занятие 5
Java осень 2014 занятие 5
Technopark
Java. Многопоточность.
Java. Многопоточность.
Unguryan Vitaliy
Java осень 2014 занятие 6
Java осень 2014 занятие 6
Technopark
Ввведение в java
Ввведение в java
Unguryan Vitaliy
Bytecode
Bytecode
Alex Tumanoff
C# Desktop. Занятие 02.
C# Desktop. Занятие 02.
Igor Shkulipa
C# Desktop. Занятие 01.
C# Desktop. Занятие 01.
Igor Shkulipa
C++ весна 2014 лекция 5
C++ весна 2014 лекция 5
Technopark
Практика Lock-free. RealTime-сервер
Практика Lock-free. RealTime-сервер
Platonov Sergey
объектно ориентированная платформа для построения
объектно ориентированная платформа для построения
Gennady Zavyalov
Шаблоны разработки ПО. Часть 3. Шаблоны GoF
Шаблоны разработки ПО. Часть 3. Шаблоны GoF
Sergey Nemchinsky
C++ Базовый. Занятие 15.
C++ Базовый. Занятие 15.
Igor Shkulipa
8. java lecture threads
8. java lecture threads
MERA_school
C# Desktop. Занятие 04.
C# Desktop. Занятие 04.
Igor Shkulipa
Введение в язык программирования «Java»
Введение в язык программирования «Java»
Unguryan Vitaliy
C++ Базовый. Занятие 11.
C++ Базовый. Занятие 11.
Igor Shkulipa
16 FACTS ABOUT CHOCOLATE
16 FACTS ABOUT CHOCOLATE
Nisha Thinisha
amazing animals
amazing animals
sosome
Mais conteúdo relacionado
Mais procurados
C++ STL & Qt. Занятие 06.
C++ STL & Qt. Занятие 06.
Igor Shkulipa
C++ STL & Qt. Занятие 09.
C++ STL & Qt. Занятие 09.
Igor Shkulipa
Java Core. Lecture# 5. Concurrency.
Java Core. Lecture# 5. Concurrency.
Anton Moiseenko
Java осень 2014 занятие 3
Java осень 2014 занятие 3
Technopark
Java осень 2014 занятие 5
Java осень 2014 занятие 5
Technopark
Java. Многопоточность.
Java. Многопоточность.
Unguryan Vitaliy
Java осень 2014 занятие 6
Java осень 2014 занятие 6
Technopark
Ввведение в java
Ввведение в java
Unguryan Vitaliy
Bytecode
Bytecode
Alex Tumanoff
C# Desktop. Занятие 02.
C# Desktop. Занятие 02.
Igor Shkulipa
C# Desktop. Занятие 01.
C# Desktop. Занятие 01.
Igor Shkulipa
C++ весна 2014 лекция 5
C++ весна 2014 лекция 5
Technopark
Практика Lock-free. RealTime-сервер
Практика Lock-free. RealTime-сервер
Platonov Sergey
объектно ориентированная платформа для построения
объектно ориентированная платформа для построения
Gennady Zavyalov
Шаблоны разработки ПО. Часть 3. Шаблоны GoF
Шаблоны разработки ПО. Часть 3. Шаблоны GoF
Sergey Nemchinsky
C++ Базовый. Занятие 15.
C++ Базовый. Занятие 15.
Igor Shkulipa
8. java lecture threads
8. java lecture threads
MERA_school
C# Desktop. Занятие 04.
C# Desktop. Занятие 04.
Igor Shkulipa
Введение в язык программирования «Java»
Введение в язык программирования «Java»
Unguryan Vitaliy
C++ Базовый. Занятие 11.
C++ Базовый. Занятие 11.
Igor Shkulipa
Mais procurados
(20)
C++ STL & Qt. Занятие 06.
C++ STL & Qt. Занятие 06.
C++ STL & Qt. Занятие 09.
C++ STL & Qt. Занятие 09.
Java Core. Lecture# 5. Concurrency.
Java Core. Lecture# 5. Concurrency.
Java осень 2014 занятие 3
Java осень 2014 занятие 3
Java осень 2014 занятие 5
Java осень 2014 занятие 5
Java. Многопоточность.
Java. Многопоточность.
Java осень 2014 занятие 6
Java осень 2014 занятие 6
Ввведение в java
Ввведение в java
Bytecode
Bytecode
C# Desktop. Занятие 02.
C# Desktop. Занятие 02.
C# Desktop. Занятие 01.
C# Desktop. Занятие 01.
C++ весна 2014 лекция 5
C++ весна 2014 лекция 5
Практика Lock-free. RealTime-сервер
Практика Lock-free. RealTime-сервер
объектно ориентированная платформа для построения
объектно ориентированная платформа для построения
Шаблоны разработки ПО. Часть 3. Шаблоны GoF
Шаблоны разработки ПО. Часть 3. Шаблоны GoF
C++ Базовый. Занятие 15.
C++ Базовый. Занятие 15.
8. java lecture threads
8. java lecture threads
C# Desktop. Занятие 04.
C# Desktop. Занятие 04.
Введение в язык программирования «Java»
Введение в язык программирования «Java»
C++ Базовый. Занятие 11.
C++ Базовый. Занятие 11.
Destaque
16 FACTS ABOUT CHOCOLATE
16 FACTS ABOUT CHOCOLATE
Nisha Thinisha
amazing animals
amazing animals
sosome
Mid map gaya belajar
Mid map gaya belajar
santy1301
Общие темы. Тема 02.
Общие темы. Тема 02.
Igor Shkulipa
C# Web. Занятие 12.
C# Web. Занятие 12.
Igor Shkulipa
C# Desktop. Занятие 09.
C# Desktop. Занятие 09.
Igor Shkulipa
Capítulo iii correcion
Capítulo iii correcion
Ida Morán
Print Brochure 3NM v6
Print Brochure 3NM v6
Alain Van Gaal
Vijay bhosekar published article organic agriculture
Vijay bhosekar published article organic agriculture
vijay bhosekar
PRES Eve's Dream
PRES Eve's Dream
Robert Ensign
Laura mulvey’s male gaze theory
Laura mulvey’s male gaze theory
Laila Jaleel
InPay OpenReaktor
InPay OpenReaktor
Lech Wilczynski
5 historia clinica
5 historia clinica
Jhon Boza Gomez
MME 2016
MME 2016
bentgate
InPay SA Kongres Mobilny 2015
InPay SA Kongres Mobilny 2015
Lech Wilczynski
Km1
Km1
karolinadiaz2015
C# Web. Занятие 03.
C# Web. Занятие 03.
Igor Shkulipa
5 niveles de prevension
5 niveles de prevension
Jhon Boza Gomez
Destaque
(18)
16 FACTS ABOUT CHOCOLATE
16 FACTS ABOUT CHOCOLATE
amazing animals
amazing animals
Mid map gaya belajar
Mid map gaya belajar
Общие темы. Тема 02.
Общие темы. Тема 02.
C# Web. Занятие 12.
C# Web. Занятие 12.
C# Desktop. Занятие 09.
C# Desktop. Занятие 09.
Capítulo iii correcion
Capítulo iii correcion
Print Brochure 3NM v6
Print Brochure 3NM v6
Vijay bhosekar published article organic agriculture
Vijay bhosekar published article organic agriculture
PRES Eve's Dream
PRES Eve's Dream
Laura mulvey’s male gaze theory
Laura mulvey’s male gaze theory
InPay OpenReaktor
InPay OpenReaktor
5 historia clinica
5 historia clinica
MME 2016
MME 2016
InPay SA Kongres Mobilny 2015
InPay SA Kongres Mobilny 2015
Km1
Km1
C# Web. Занятие 03.
C# Web. Занятие 03.
5 niveles de prevension
5 niveles de prevension
Semelhante a C++ STL & Qt. Занятие 04.
C++ осень 2012 лекция 1
C++ осень 2012 лекция 1
Technopark
Tdd php
Tdd php
Magento Dev
Froglogic Squish
Froglogic Squish
SQALab
Шаблоны разработки ПО. Часть 1. Введние
Шаблоны разработки ПО. Часть 1. Введние
Sergey Nemchinsky
C# Web. Занятие 16.
C# Web. Занятие 16.
Igor Shkulipa
Behat в PHP с использованием Behat и Mink
Behat в PHP с использованием Behat и Mink
tyomo4ka
Java 2 - Java Intro
Java 2 - Java Intro
Alexander Babich
Никита Глушков, К вопросу о реализации кроссплатформенных фреймворков
Никита Глушков, К вопросу о реализации кроссплатформенных фреймворков
Sergey Platonov
Курсы по мобильной разработке. 1 лекция. Знакомство с iOS
Курсы по мобильной разработке. 1 лекция. Знакомство с iOS
Глеб Тарасов
Ember.js ответ на почти все вопросы - java script frameworks day 2014
Ember.js ответ на почти все вопросы - java script frameworks day 2014
Andrey Listochkin
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Oleg Nenashev
Squeek 1
Squeek 1
Oleg Parinov
Компонентная разработка на Stylus, Jade, Typescript - Леонид Ширманов
Компонентная разработка на Stylus, Jade, Typescript - Леонид Ширманов
MoscowJS
Инструмент для разработки эл. курсов Course lab. WebSoft
Инструмент для разработки эл. курсов Course lab. WebSoft
Сообщество eLearning PRO
Java 1 - Java Fund
Java 1 - Java Fund
Alexander Babich
Метапрограммирование с примерами на JavaScript
Метапрограммирование с примерами на JavaScript
Timur Shemsedinov
TDD: когда нужно и, самое главное, когда не нужно / Павел Калашников (SimbirS...
TDD: когда нужно и, самое главное, когда не нужно / Павел Калашников (SimbirS...
Ontico
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...
Dev_Party
Easy authcache 2 кеширование для pro родионов игорь
Easy authcache 2 кеширование для pro родионов игорь
drupalconf
Easy authcache 2 кэширование для pro. Родионов Игорь
Easy authcache 2 кэширование для pro. Родионов Игорь
PVasili
Semelhante a C++ STL & Qt. Занятие 04.
(20)
C++ осень 2012 лекция 1
C++ осень 2012 лекция 1
Tdd php
Tdd php
Froglogic Squish
Froglogic Squish
Шаблоны разработки ПО. Часть 1. Введние
Шаблоны разработки ПО. Часть 1. Введние
C# Web. Занятие 16.
C# Web. Занятие 16.
Behat в PHP с использованием Behat и Mink
Behat в PHP с использованием Behat и Mink
Java 2 - Java Intro
Java 2 - Java Intro
Никита Глушков, К вопросу о реализации кроссплатформенных фреймворков
Никита Глушков, К вопросу о реализации кроссплатформенных фреймворков
Курсы по мобильной разработке. 1 лекция. Знакомство с iOS
Курсы по мобильной разработке. 1 лекция. Знакомство с iOS
Ember.js ответ на почти все вопросы - java script frameworks day 2014
Ember.js ответ на почти все вопросы - java script frameworks day 2014
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Squeek 1
Squeek 1
Компонентная разработка на Stylus, Jade, Typescript - Леонид Ширманов
Компонентная разработка на Stylus, Jade, Typescript - Леонид Ширманов
Инструмент для разработки эл. курсов Course lab. WebSoft
Инструмент для разработки эл. курсов Course lab. WebSoft
Java 1 - Java Fund
Java 1 - Java Fund
Метапрограммирование с примерами на JavaScript
Метапрограммирование с примерами на JavaScript
TDD: когда нужно и, самое главное, когда не нужно / Павел Калашников (SimbirS...
TDD: когда нужно и, самое главное, когда не нужно / Павел Калашников (SimbirS...
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...
Easy authcache 2 кеширование для pro родионов игорь
Easy authcache 2 кеширование для pro родионов игорь
Easy authcache 2 кэширование для pro. Родионов Игорь
Easy authcache 2 кэширование для pro. Родионов Игорь
Mais de Igor Shkulipa
Общие темы. Тема 03.
Общие темы. Тема 03.
Igor Shkulipa
Общие темы. Тема 01.
Общие темы. Тема 01.
Igor Shkulipa
JavaScript Базовый. Занятие 06.
JavaScript Базовый. Занятие 06.
Igor Shkulipa
JavaScript Базовый. Занятие 11.
JavaScript Базовый. Занятие 11.
Igor Shkulipa
JavaScript Базовый. Занятие 09.
JavaScript Базовый. Занятие 09.
Igor Shkulipa
JavaScript Базовый. Занятие 10.
JavaScript Базовый. Занятие 10.
Igor Shkulipa
JavaScript Базовый. Занятие 05.
JavaScript Базовый. Занятие 05.
Igor Shkulipa
JavaScript Базовый. Занятие 08.
JavaScript Базовый. Занятие 08.
Igor Shkulipa
JavaScript Базовый. Занятие 07.
JavaScript Базовый. Занятие 07.
Igor Shkulipa
JavaScript Базовый. Занятие 01.
JavaScript Базовый. Занятие 01.
Igor Shkulipa
JavaScript Базовый. Занятие 04.
JavaScript Базовый. Занятие 04.
Igor Shkulipa
JavaScript Базовый. Занятие 03.
JavaScript Базовый. Занятие 03.
Igor Shkulipa
JavaScript Базовый. Занятие 02.
JavaScript Базовый. Занятие 02.
Igor Shkulipa
C# Web. Занятие 09.
C# Web. Занятие 09.
Igor Shkulipa
C# Web. Занятие 08.
C# Web. Занятие 08.
Igor Shkulipa
C# Web. Занятие 07.
C# Web. Занятие 07.
Igor Shkulipa
C# Web. Занятие 04.
C# Web. Занятие 04.
Igor Shkulipa
C# Web. Занятие 14.
C# Web. Занятие 14.
Igor Shkulipa
C# Web. Занятие 15.
C# Web. Занятие 15.
Igor Shkulipa
C# Web. Занятие 13.
C# Web. Занятие 13.
Igor Shkulipa
Mais de Igor Shkulipa
(20)
Общие темы. Тема 03.
Общие темы. Тема 03.
Общие темы. Тема 01.
Общие темы. Тема 01.
JavaScript Базовый. Занятие 06.
JavaScript Базовый. Занятие 06.
JavaScript Базовый. Занятие 11.
JavaScript Базовый. Занятие 11.
JavaScript Базовый. Занятие 09.
JavaScript Базовый. Занятие 09.
JavaScript Базовый. Занятие 10.
JavaScript Базовый. Занятие 10.
JavaScript Базовый. Занятие 05.
JavaScript Базовый. Занятие 05.
JavaScript Базовый. Занятие 08.
JavaScript Базовый. Занятие 08.
JavaScript Базовый. Занятие 07.
JavaScript Базовый. Занятие 07.
JavaScript Базовый. Занятие 01.
JavaScript Базовый. Занятие 01.
JavaScript Базовый. Занятие 04.
JavaScript Базовый. Занятие 04.
JavaScript Базовый. Занятие 03.
JavaScript Базовый. Занятие 03.
JavaScript Базовый. Занятие 02.
JavaScript Базовый. Занятие 02.
C# Web. Занятие 09.
C# Web. Занятие 09.
C# Web. Занятие 08.
C# Web. Занятие 08.
C# Web. Занятие 07.
C# Web. Занятие 07.
C# Web. Занятие 04.
C# Web. Занятие 04.
C# Web. Занятие 14.
C# Web. Занятие 14.
C# Web. Занятие 15.
C# Web. Занятие 15.
C# Web. Занятие 13.
C# Web. Занятие 13.
C++ STL & Qt. Занятие 04.
1.
Темы лекции: Паттерн
MVP на Qt. Практическое задание: Паттерн MVP на Qt. Тренер: Игорь Шкулипа, к.т.н. С++ Библиотеки STL и Qt. Занятие 4
2.
http://www.slideshare.net/IgorShkulipa 2 Проект «Окно
логина»
3.
http://www.slideshare.net/IgorShkulipa 3 Класс «Модель».
Файл model.h #ifndef MODEL_H #define MODEL_H #include <QObject> #include <QMap> #include <QString> class Model: public QObject { Q_OBJECT private: QMap<QString,QString> usersAndPasswords; public: Model(); QList<QString> GetUsers(); QString TryToLogin(QString user, QString password); }; #endif // MODEL_H
4.
http://www.slideshare.net/IgorShkulipa 4 Класс «Презентер».
Файл presenter.h #ifndef PRESENTER_H #define PRESENTER_H #include <QObject> #include "iview.h" #include "model.h" class Presenter: public QObject { Q_OBJECT private: IView* view; Model* model; public: Presenter(); Presenter(IView* newView); private slots: void UpdateUsers(); void Login(); }; #endif // PRESENTER_H
5.
http://www.slideshare.net/IgorShkulipa 5 Интерфейс «Вид».
Файл iview.h #ifndef IVIEW_H #define IVIEW_H #include <QString> #include <QList> class IView { public: virtual QString GetUser()=0; virtual QString GetPassword()=0; virtual void UpdateUsers(QList<QString> users)=0; virtual void ShowMessage(QString message)=0; public: virtual void onLogin()=0; virtual void onListUpdate()=0; }; #endif // IVIEW_H
6.
http://www.slideshare.net/IgorShkulipa 6 Реализация интерфейса.
Файл mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include "iview.h" namespace Ui { class MainWindow;} class MainWindow : public QMainWindow, public Iview { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); virtual QString GetUser(); virtual QString GetPassword(); virtual void UpdateUsers(QList<QString> users); virtual void ShowMessage(QString message); signals: void onLogin(); void onListUpdate(); private slots: void on_pushButton_clicked(); void on_listWidget_activated(const QModelIndex &index); private: Ui::MainWindow *ui; }; #endif // MAINWINDOW_H
7.
http://www.slideshare.net/IgorShkulipa 7 Реализация модели.
Файл model.cpp #include "model.h" Model::Model() { usersAndPasswords.insert("User1", "Password1"); usersAndPasswords.insert("User2", "Password2"); usersAndPasswords.insert("User3", "Password3"); usersAndPasswords.insert("User4", "Password4"); usersAndPasswords.insert("User5", "Password5"); } QList<QString> Model::GetUsers(){ return usersAndPasswords.keys(); } QString Model::TryToLogin(QString user, QString password){ if (usersAndPasswords.contains(user)) { int index=usersAndPasswords.keys().indexOf(user); if (usersAndPasswords.values().at(index) == password) { return "Login Successful!"; } } return "Login Failed."; }
8.
http://www.slideshare.net/IgorShkulipa 8 Реализация презентера.
Файл presenter.cpp #include "presenter.h" Presenter::Presenter() :view(NULL), model(NULL){ } Presenter::Presenter(IView *newView) :view(newView), model(new Model){ QObject *view_obj = dynamic_cast<QObject*>(view); connect(view_obj, SIGNAL(onLogin()), this, SLOT(Login())); connect(view_obj, SIGNAL(onListUpdate()), this, SLOT(UpdateUsers())); } void Presenter::UpdateUsers(){ view->UpdateUsers(model->GetUsers()); } void Presenter::Login() { QString loginResult = model->TryToLogin(view->GetUser(), view->GetPassword()); view->ShowMessage(loginResult); }
9.
http://www.slideshare.net/IgorShkulipa 9 Главное окно.
Файл mainwindow.cpp #include "mainwindow.h" #include "ui_mainwindow.h" #include <QMessageBox> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); } MainWindow::~MainWindow(){ delete ui; } QString MainWindow::GetUser(){ return ui->textEdit->toPlainText(); } QString MainWindow::GetPassword(){ return ui->textEdit_2->toPlainText(); }
10.
http://www.slideshare.net/IgorShkulipa 10 Главное окно.
Файл mainwindow.cpp void MainWindow::UpdateUsers(QList<QString> users){ ui->listWidget->clear(); QStringList stringList(users); ui->listWidget->addItems(stringList); } void MainWindow::ShowMessage(QString message){ QMessageBox *mb=new QMessageBox(); mb->setText(message); mb->show(); } void MainWindow::on_pushButton_clicked(){ emit onLogin(); } void MainWindow::on_listWidget_activated(const QModelIndex &index) { emit onListUpdate(); }
11.
http://www.slideshare.net/IgorShkulipa 11 Главный файл.
Файл main.cpp #include "mainwindow.h" #include <QApplication> #include "presenter.h" int main(int argc, char *argv[]) { QApplication app(argc, argv); MainWindow* view=new MainWindow(); Presenter* present=new Presenter(view); Q_UNUSED(present); view->show(); return app.exec(); }
12.
http://www.slideshare.net/IgorShkulipa 12 Результат
13.
http://www.slideshare.net/IgorShkulipa 13 Лабораторная работа
№4. Паттерн MVP на Qt View Presenter Model
Baixar agora