Privacy policyContactsAbout siteOpinionsGitHubDonate
© EVILEG 2015-2018
Recommend hosting
TIMEWEB
Sept. 24, 2018, 12:23 p.m.

C++

шаблоны проектирования, factory, method, C++

Discussion. Frameworks are applications (or subsystems) with "holes" in them. Each framework specifies the infrastructure, superstructure, and flow of control for its "domain", and the client of the framework may: exercise the framework's default behavior "as is", extend selected pieces of the framework, or replace selected pieces.

The Factory Method pattern addresses the notion of "creation" in the context of frameworks. In this example, the framework knows WHEN a new document should be created, not WHAT kind of Document to create. The "placeholder" Application::CreateDocument() has been declared by the framework, and the client is expected to "fill in the blank" for his/her specific document(s). Then, when the client asks for Application::NewDocument(), the framework will subsequently call the client's MyApplication::CreateDocument().

Sept. 24, 2018, 9:05 a.m.

Design Patterns

шаблоны проектирования, Bridge, мост

Цели

  • Отделите абстракцию от ее реализации, чтобы они могли изменяться независимо друг от друга.
  • Создание публичного интерфейса в иерархии наследования и реализация в своей собственной иерархии наследования.
  • Помимо инкапсуляции использование изоляции

Проблематика

«Укрепление программных связей» путем использования подкласса абстрактного базового класса для обеспечения альтернативных реализаций. Это блокирует привязку ко времени компиляции между интерфейсом и реализацией. Абстракция и реализация не могут быть независимо расширены или переопределены.

Sept. 22, 2018, 8:16 a.m.

Projects based on Qt

fb2-reader, reader, fb2-читалка, читалка, fb2, html

Некоторое время назад я написал статью, в которой показал как можно открыть файл формата fb2 инструментами Qt. Спустя некоторое время я заметил в ней ряд недостатков, которые решил устранить. Более того, я обнаружил, что некоторые fb2 читалки также имеют недостатки (а именно неправильное отображение таблиц), что и подтолкнуло меня к написанию этой статьи. Для начала можно ознакомиться с прошлой статьёй . Действовать будем по тому же принципу: формируем строку book в формате html и помещаем её в объект QTextBrowser.

Напомню, чтобы сформировать html-документ необходимо выполнить 3 действия: открыть тэг, заполнить его содержимым и закрыть. Поэтому для нас существует 4 варианта действий: переписываем из исходного файла, переписываем с коррективами, ничего не делаем (игнорируем), проводим специальную обработку.

Sept. 21, 2018, 11:11 a.m.

Design Patterns

adapter, шаблоны проектирования

Цели

  1. Преобразование интерфейса класса в другой интерфейс. Адаптер позволяет классам работать вместе, что в противном случае могло бы быть связано с несовместимыми интерфейсами классов.
  2. Оборачивание существующего класса в новый интерфейс
  3. Соответствие старого компонента новой системе

Проблематика

Уже готовый компонент имеет всё необходимое для разработки вашей системы, но его интерфейсы несовместимы с интерфейсами классов вашего приложения.

Sept. 21, 2018, 7:18 a.m.

PHP

PHP, шаблоны проектирования, Строитель, Builder

In the Builder Pattern a director and a builder work together to build an object. The director controls the building and specifies what parts and variations will go into an object. The builder knows how to assemble the object given specification.

In this example we have a director, HTMLPageDirector, which is given a builder,  HTMLPageBuilder. The director tells the builder what the pageTitle will be, what the  pageHeading will be, and gives multiple lines of text for the page. The director then has the builder do a final assembly of the parts, and return the page.

Sept. 21, 2018, 7:13 a.m.

Delphi

Builder, Delphi, Строитель, шаблоны проектирования

The functionality used in Delphi's VCL to create forms and components is similar in concept to the builder. Delphi creates forms using a common interface, through Application.CreateForm and through the TForm class constructor. TForm implements a common constructor using the resource information (DFM file) to instantiate the components owned by the form. Many descendant classes reuse this same construction process to create different representations. Delphi also makes developer extensions easy. TForm's OnCreate event also adds a hook into the builder process to make the functionality easy to extend.

Sept. 20, 2018, 1:33 p.m.

Design Patterns

шаблоны проектирования, Синглетон, singleton

Цели

  1. Убедиться, что класс имеет только один экземпляр и предоставляет глобальную точку доступа к нему.
  2. Инкапсулированная "инициализация в определённый момент времени" или "инициализация при первом использовании".

Проблематика

Приложению нужен один и только один экземпляр объекта. Кроме того, необходимы ленивая инициализация и глобальный доступ.

Sept. 20, 2018, 7:15 a.m.

Qt

PySide2, Qt, Python

На этой странице описывается использование Qt Creator для создания графических интерфейсов для вашего программного обеспечения PySide. Вам понадобится Qt Creator для разработки и изменения вашего интерфейса (ui-файл)

Для создания Ui файлов используется Qt Designer.

В Qt Creator создайте новую форму, выберите «Main Window» для шаблона. И сохраните как «mainwindow.ui». Добавьте Qlabel в центр центрального виджета.

Ваш файл (mainwindow.ui) должен выглядеть примерно так:

Sept. 19, 2018, 2:27 p.m.

Design Patterns

Prototype, шаблоны проектирования, Прототип, abstract

Цели

  • Указать типы объектов для создания с использованием экземпляра прототипа и создать новые объекты, скопировав этот прототип.
  • Coздать один экземпляр класса для использования в качестве исходника всех будущих экземпляров.
  • Оператор new считается вредным

Проблематика

Приложение имеет жёсткую привязку к классу объекта при использовании оператора new.

Nov. 16, 2018, 7:09 p.m.
Илья Завьялов

Qt - Test 001. Signals and slots

  • Result:31points,
  • Rating scores-10
Nov. 16, 2018, 12:49 p.m.
Ирина Минигузина

C++ - Тест 003. Условия и циклы

  • Result:0points,
  • Rating scores-10
Nov. 16, 2018, 8:55 a.m.
Vitaliy

Qt - Test 001. Signals and slots

  • Result:52points,
  • Rating scores-4
Recent comments
Nov. 16, 2018, 6:50 a.m.
Евгений Легоцкой

Добрый день! шаблон не находит, или шаблон неправильно прописали, или тег шаблона неправильно написан, иных выводов сделать не могу, из того, что вы написали. трейсбек нужно смотреть. Со...
Nov. 16, 2018, 6:48 a.m.
Евгений Легоцкой

пройтись циклом по всем виджетам в обратном порядке for (int i = ui->vertialLayout->count() - 1; i >= 0; --i){ QWidget* w = ui->verticalLyout->itemAt(i)->widget();...
Nov. 15, 2018, 9:35 p.m.
chunk

Доброго времени суток Евгений. Не подскажете что я делаю не так? Получаю ошибку такого характера: Reverse for 'add_comment' with arguments '('',)' not found. 1 pattern(s) tried: ...
Nov. 15, 2018, 3:35 p.m.
Михаиллл

Спасибо. Похоже где то описку сделал, поэтому не работало. Я добавил на verticalLayout много виджитов. А можно ли их как то быстро и просто удалить?
Nov. 15, 2018, 2:55 p.m.
Евгений Легоцкой

verticalLayout - это, по-моему предположению, должен быть у вас объект класса QVBoxLayout, который наследован от QBoxLayout. Поэтому открываете документацию на QVBoxLayout ...
Now discuss on the forum
Nov. 16, 2018, 4:28 p.m.
Евгений Легоцкой

Добрый день! Спасибо, что воспользовались именно форумом. Заниматься курсовыми работами чьими-то ни было у меня времени нет, у самого полторы работы. Но что-то подсказать на фо...
Nov. 16, 2018, 9:52 a.m.
Евгений Легоцкой

Отладчик!!!! Версия комплекта MSVC 2015 + компилятор 14.0!!!!
Nov. 14, 2018, 3:25 p.m.
Михаиллл

вот решение // grab the model QStandardItemModel* model = qobject_cast<QStandardItemModel*> ( ui->combobox->model() ); if (!model) { // check is important or u can/might ...
Nov. 14, 2018, 7:56 p.m.
Евгений Легоцкой

Добрый день! QGripSize целится на окно, но никак не на виджет. Здесь можно кастомную вьюшку написать. Вот в этой статье есть пример написания собственного ресайза ....
Join us in social networks

For registered users on the site there is a minimum amount of advertising