Реклама
18 августа 2015 г. 22:20

DELL Networking. STP Configuring

РуководствоТехнологии передачи данныхMSTP, RSTP, STP887

Настройка STP на коммутаторах DELL (В зависимости от версии ОС коммутатора синтаксис может несколько различаться.

Прежде, чем производить настройку STP на портах коммутатора, необходимо произвести глобальную настройку протокола:

console(config)# spanning-tree 
console(config)# spanning-tree mode rstp 
console(config)# spanning-tree priority 12288 
console(config)# spanning-tree hello-time 5 
console(config)# spanning-tree max-age 12 
console(config)# spanning-tree forward-time 25 
console(config)# exit

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

17 августа 2015 г. 12:55

Qt/C++ - Урок 006. QSqlQueryModel - Таблицы в Qt с помощью SQL-запросов

РуководствоQtQSqlQueryModel, qsqlquerymodel example, qt, qt таблицы, query4301

Использование QSqlQueryModel для формирования таблиц в Qt является наиболее хардкорным вариантом с наиболее низким уровнем абстракции, чем использование QSqlTableModel или QSqlRelationalTableModel . Но при всём при этом и наиболее гибкий вариант, который требует более глубокого знания языка SQL-запросов. В предыдущей статье были построены две таблицы:

  • Основная , в которой были колонки Дата, Время, Имя Хоста, IP-адрес.
  • Таблица устройств, в которой были колонки Имя Хоста и IP-адрес.

В Основной таблице в колонках Имени Хоста и IP-адреса указывались ID-устройств, по которым проводилась подстановка данных из Таблицы устройств. В данной статье структура первой таблицы и следовательно таблицы будут выглядеть иначе:

  • Основная , в которой были колонки Дата, Время, ID устройства.
  • Таблица устройств, в которой были колонки Имя Хоста и IP-адрес.

Генерация Основной таблицы в Приложении будет производиться SQL-запросом и таблица будет иметь соответственно колонки Дата, Время, Имя Хоста и IP-адрес.

16 августа 2015 г. 21:32

Qt WinAPI - Урок 002. Как сделать win инсталлятор для Qt-приложения?

РуководствоQtWinAPI, DLL, InnoSetup, Windows, Qt, Инсталлятор2969

В прошлой статье Мы научились быстро собирать все используемые в проекте DLL-библиотеки. А теперь настало время поговорить о том, как собрать инсталлятор для ОС Windows. Уже длительное время пользуюсь довольно удобной opensource утилитой под названием InnoSetup, которая позволяет буквально в несколько кликов собирать мультиязычный инсталлятор.

Инсталлятор собирается утилитой из скрипта, который вы можете написать в рукопашную, или воспользоваться сценарием по созданию скрипта. Второй вариант проще и достаточно эффективен.

Сборка инсталлятора

Шаг первый. Запуск сценария сборки скрипта

Для запуска сценария заходим в меню и выбираем создать новый: File > New или комбинация клавиш Ctrl + N.

После чего нажимаем на кнопку Next.

16 августа 2015 г. 20:43

Qt WinAPI - Урок 001. Как собрать все DLL, используемые в Qt-проекте?

РуководствоQtWinAPI, DLL, DLL Collector, DLLCollector, Qt4946

Рано или поздно перед любым Qt-разработчиком встаёт необходимость переноса своего приложения на другие компьютеры, и тогда возникает проблема наличия библиотек на целевом компьютере, которые необходимы для запуска и работы приложения. Особенно заметно это может быть при переносе приложения, которое должно исполняться под ОС Windows. Если под ОС Linux необходимые Qt библиотеки могут присутствовать по умолчанию, как например с Ubuntu, то под ОС Windows их может и вовсе не быть.

Но поиск и сборка всех необходимых библиотек может оказаться трудной задачей для новичка, да и вполне нудной задачей для опытного программиста. Но и здесь благодаря добрым людям имеется решение. Это утилита DLL Collector. Данная утилита позволяет получить зависимости программы, которая была написана на фреймворке Qt и автоматически скопировать данные библиотеки в заданную папку.

Как пишет Автор , утилита производит поиск зависимостей в runtime процесса. Следовательно Вашу программу необходимо запустить через данную утилиту. DLL Collector собирает информацию о всех подгружаемых Плагинах, используемых Вашей программой, но при этом не стоит забывать, что плагины подгружаются при первом использовании их функциями Вашей программы. Таким образом, необходимо сделать прогон Вашей программы по её функционалу, чтобы DLL Collector нашёл все библиотеки.

15 августа 2015 г. 22:31

Qt/C++ - Урок 005. QSqlRelationalTableModel - Работаем со связными таблицами

РуководствоQtQSqlRelationalTableModel, QSqlRelationalTableModel example, qt, qt таблицы, sql, sqlite3598

В Qt для представления таблиц поля, которых связаны внешними ключами с другими таблицами базы данных, может применяться QSqlRelationalTableModel , которая является более продвинутым вариантом класса QSqlTableModel ,  который был рассмотрен в предыдущей статье .

Данный класс позволяет устанавливать связи между таблицами и подменять в представлении значения формируемой таблицы значениями из связных таблиц.

В данной статье рассматривается вариант из двух таблиц. В одной из таблиц содержится информация об устройствах (Имя хоста и IP адрес), а во второй таблице ID этих устройств, по которым в второй таблице будут подставляться Имя хоста и IP адрес соответственно устройствам.

Структура проекта для QSqlRelationalTableModel

Структура проекта

Проект для этого урока является доработанной версией предыдущей статьи и остается неизменной.

14 августа 2015 г. 23:44

Qt/C++ - Урок 004. QSqlTableModel или Как представить таблицу из БД в Qt?

РуководствоQtdatabase, QSqlTableModel, QSqlTableModel example, qt, qt таблицы, sql, sqlite7179

Для того, чтобы представить информацию, содержащуюся в таблице базы данных, во фреймворке Qt используется несколько классов:

  • QSqlQueryModel - модель, которая формирует таблицу путем задания сырого SQL-запроса. Может быть полезна при формировании особо изощренных фильтров и компиляции информации из различных таблиц базы данных. О ней подробнее в следующих уроках.
  • QSqlTableModel - предмет нашей беседы в данной статье. Модель, которая формирует таблицу по имени той таблицы, которая существует в базе данных. Из минусов можно отметить отсутствие методов подключения связей c другими таблицами, чтобы подставлять значения в поля из других таблиц по ID.
  • QSqlRelationalTableModel - класс, который позволяет формировать таблицу со связями из других таблиц, подменяя значения таблицы, которую представляет данная модель, по ID записей, содержащихся в других таблицах.

Для комфортной работы с информацией, которая помещена в базу данных применяется дополнительный класс, который частично представляет собой шаблон проектирования "Фасад" .

Программный код был написан в QtCreator 3.3.1 на основе Qt 5.4.1.

Структура проекта для QSqlTableModel

Проект создается как Приложение Qt Widgets, в котором создаются следующие файлы:

  • DataBase.pro - профайл;
  • mainwindow.h - заголовочный файл основного окна приложения;
  • mainwindow.cpp - исходный код окна;
  • main.cpp - основной исходный файл, с которого стартует приложение;
  • mainwindow.ui - формочка основного окна приложения;
  • database.h - заголовочный файл вспомогательного класса, применяющегося для работы с информацией, которая помещена в базу данных;
  • database.cpp - исходный файл вспомогательного класса, применяющегося для работы с информацией, которая помещена в базу данных;
13 августа 2015 г. 23:29

Qt/C++ - Урок 003. QSettings или Как сохранить настройки приложения?

РуководствоQtQSettings, QSettings example, QSettings пример, qt, Настройки, сохранение настроек4066

Сохранение настроек Приложения - это одно из первых действий, которое изучают новички при работе с фреймворком Qt. Для этого используется класс QSettings, который позволяет сохранять настройки либо в реестр операционной системы, либо в текстовый файл. В данном уроке будет использован самый простой вариант - это сохранение настроек в реестр операционной системы. Для обеспечения наглядности работы сохранения настроек в данном уроке использовался проект из урока по QSystemTrayIcon .

Программный код был написан в QtCreator 3.3.1 на основе Qt 5.4.1 под Windows.

Структура проекта

Проект создается как Приложение Qt Widgets, в котором по умолчанию создаются файлы:

  • Settings.pro - профайл;
  • mainwindow.h - заголовочный файл основного окна приложения;
  • mainwindow.cpp - исходный код окна;
  • main.cpp - основной исходный файл, с которого стартует приложение;
  • mainwindow.ui - формочка основного окна приложения.
12 августа 2015 г. 22:27

Qt/C++ - Урок 002. QSystemTrayIcon или Как свернуть приложение в трей?

РуководствоQtQSystemTrayIcon, Tray, qt, трей3924

Аналогичная статья на PyQt5/Python

Сегодня обсудим то, каким образом сворачивать приложение, написанное на фреймворке Qt, в трей операционной системы с помощью класса QSystemTrayIcon. Данная функция является весьма полезной для приложений, которые должны выполняться в фоновом режиме длительное время. Например, приложение видеозаписи или аудио воспроизведения.

Поэтому займёмся следующими вопросами:

  • Как научить Вашу программу сворачиваться в трей;
  • Как сделать контектсное меню для иконки трея Вашего приложения;
  • Как отключать данную функцию, если в ней нет необходимости.

Программный код был написан в QtCreator 3.3.1 на основе Qt 5.4.1.

11 августа 2015 г. 22:12

DELL Networking. VLAN Configuring

РуководствоТехнологии передачи данныхDELL, vlan, voice vlan1167

Настройка VLAN на коммутаторах DELL (В зависимости от версии ОС коммутатора синтаксис может несколько различаться.

Прежде, чем настраивать VLAN на интерфейсах коммутатора, необходимо внести VLAN в базу данных коммутатора и создать интерфейс VLAN:

console(config)# vlan database
console(config-vlan)# vlan 1972
console(config-vlan)# end
console(config)# interface vlan 1972
console(config-if)# name Marketing
console(config-if)# end
10 августа 2015 г. 21:59

DELL Networking. MLAG Протокол

РуководствоТехнологии передачи данныхDELL, LACP, MLAG1203

Campus Switching Architecture

Коммутаторы Dell networking N-series основаны на современной архитектуре кампусных сетей

  1. Поддерживают петлевую избыточность без использования STP протокола посредством использования протокола MLAG для создания повышенной доступности ресурсов и большой полосы пропускания.
  2. Плавное взаимодействие с существующей инфраструктурой для большей совместимости и интеграции.
  3. Объединение различных сетевых продуктов с последними открытыми стандартами протоколов для большего выбор в сети.

Архитектура кампуса на коммутаторах Dell основывается на функционале протокола MLAG запущенного в версии 6.1 операционной системы  коммутаторов Dell. В этой архитектуре два коммутатора N4064F в качестве peers агрегируют коммутаторы доступа, которые объединены в два стека также в качестве peers . Каждый коммутатор стека обслуживает часть одного этажа в здании кампуса, который агрегируется двумя 10Гбит/c uplink’ами. N4064F коммутаторы уровня агрегации с легкостью поддерживают до 24 стеков коммутаторов. Данная архитектура предоставляет повышенную полосу пропускания, преодолевая ограничения STP по блокированию избыточных портов. Сеть проектируется с высокой избыточностью в плане отказа канала связи и коммутаторов.

Реклама
  • BoostEX
  • 17 августа 2017 г. 16:45

C++ - Тест 001. Первая программа и типы данных

  • Результат - 73 баллов
  • Nordman
  • 15 августа 2017 г. 20:40

C++ - Тест 005. Структуры и Классы

  • Результат - 66 баллов

C++ - Тест 002. Константы

  • Результат - 33 баллов
Последние комментарии
  • EVILEG
  • 17 августа 2017 г. 18:33

Qt/C++ - Урок 069. Шифрование методом XOR

Не обратил внимания на это, Проверял с большим текстом.. По идее не должно.

Qt/C++ - Урок 069. Шифрование методом XOR

Шифрует/дешифрует текст от 8 символов, так и должно быть?

  • EVILEG
  • 15 августа 2017 г. 20:32

Qt/C++ - Урок 048. QThread - работа с потоками с помощью moveToThread

Нууу... тут уже вопрос к самому Qt4.8. Если честно, идей нет, да и копаться в deprecated коде желания тоже нет.

  • t000r
  • 15 августа 2017 г. 19:49

Qt/C++ - Урок 048. QThread - работа с потоками с помощью moveToThread

В qt5.6 всё нормально заработало. С 4.8 - нет

  • EVILEG
  • 15 августа 2017 г. 17:44

Qt/C++ - Урок 050. Логирование событий Qt приложения в текстовый файл

Я полистал информацию в интернетах, вроде как кто-то пытается подружить его с Qt5, но успешных результатов не нашёл. Да и на сайте как-то не заметно информации о том, что конкретно ему нужно, ...

Сейчас обсуждают на форуме
  • EVILEG
  • 19 августа 2017 г. 17:47

Проблемы с памятью

Добрый день! При работе со StackView, когда вы делаете push страниц, они постоянно добавляются и добавляются. Они не должны в данном случае удаляться, если вы просто пушите страницы в Sta...

  • MinusNol
  • 18 августа 2017 г. 16:22

WINAPI и Qt.

Да, покопаюсь. С WINAPI плохо знаком :) Но я уже существенно улучшил свой код благодаря вашему совету, благодарю вас :)

  • alex_lip
  • 18 августа 2017 г. 13:50

Я только учусь..(как правильно присвоить значение объекту другого класса)

хм. Похоже файл где-то в кэше остался. Я его второй раз  не прикреплял.

Сборка Qt / C++ проекта под windows и linux

нет, я тут кое что попробую- о результатах скажу)))

  • EVILEG
  • 16 августа 2017 г. 13:38

Перевод кодировки строки из windows 1251 в Utf-8

Здесь необходимо использовать QTextCodec. Вещь это очень хитрая в том плане, что объект этого класса необходимо создавать с определённой кодировкой. Поскольку он будет гонять данные от заданной код...