© EVILEG 2015-2018
Рекомендует хостинг
TIMEWEB
9 июля 2018 г. 10:14

QtQt/C++ - Урок 082. Кастомные виджеты в графическом дизайнере Qt Designer

QtDesigner, Widget, Qt

Периодически возникают вопросы связанные с наследованием виджетов и применении наследованных виджетов в рамках графического дизайнера Qt Designer.

Если применение виджета в рамках кода в целом является понятным, то как прикрутить кастомный виджет к ui форме на первый взгляд не понятно.

Давайте посмотрим на примере наследованной кнопки QPushButton.

6 июля 2018 г. 8:26

C++Готовим лямбда функции в C++ - Часть 2 - Рекурсивные лямбда функции на примере вычисления факториала

factorial, lambda, C++, лямбда функция, факториал

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

Рассмотрим для начала обычный вариант вычисления факториала, а также уточним, что такое рекурсивная функция.

Рекурсивная функция

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

Вот пример такой бесконечной рекурсивной функции, программа с которой завершается аварийно из-за переполнения стека вызовов.

#include <iostream>

using namespace std;

void infiniteRecursiveFunction()
{
    cout << "Hello World!" << endl;
    infiniteRecursiveFunction();
}

int main()
{
    infiniteRecursiveFunction();
    return 0;
}
5 июля 2018 г. 7:05

DjangoDjango - Урок 035. Различные шаблоны для рендеринга разных типов контента в поисковой выдаче

Django, template, content, Search

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

Посмотрим на пример выдачи.

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

Но это сделано гораздо более изящно, чем выбор через if else . Честно, мне самому очень нравится это решение.

4 июля 2018 г. 6:38

DjangoDjango - Урок 034. Как сделать поиск по нескольким моделям данных

Search, QuerySet, Django, Model

В предыдущих статьях мы рассматривали, как сделать поиск на сайте на сайте. А именно:

Но что если у вас больше, чем один тип контента. У вас могут быть статьи, комментарии, форум и сообщения на форуме. Как тогда быть?

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

2 июля 2018 г. 18:24

QtQt/C++ - Урок 81. Как сделать базовый класс для виджетов использующих ui файлы форм

Qt, ui, Form, C++

В некоторых случаях может потребоваться создавать классы форм виджетов, у которых будет кастомный базовый класс. То есть класс формы виджета будет наследован от вашего класса, а не напрямую от QWidget , QDialog или QMainWindow .

Естественно, что для этого ваш кастомный класс должен быть наследован от одного из этих трёх классов. Но при этом у вас будет собственный базовый класс для какого-либо специфичного функционала, не важно для какого. Не будем делать Холивар о том, насколько удобно или неудобно использовать Qt Designer или лучше писать всё вручную в коде. Знаю, что у некоторые программисты не приемлют использование Qt Designer. Но остановимся на том, что для меня он удобен, как и для части других программистов.

Создадим два класса форм FirstForm и SecondForm , которые будут наследованы от виджета BaseWidget , который в свою очередь наследован от QWidget .

Внешний вид окна приложения будет таким.

2 июля 2018 г. 7:49

EVILEGНеполадки с базой данных

EVILEG

Добрый день, Дорогие Пользователи EVILEG!

30 июня произошёл сбой с базой данных. Часть данных за последние 3 дня была утеряна, за что приношу свои извинения!

Благодаря кешу Bing удалось восстановить часть сообщений и комментариев, а также последнюю статью.

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

Спасибо за понимание!

29 июня 2018 г. 14:30

Карьера и бизнес в ITEVILEG - Празднуем три года

EVILEG, 3 года

28 июня информационному ресурсу EVILEG исполнилось три года. И пора подвести итоги тому, что было сделано, что так и не удалось сделать в силу различных обстоятельств, среди которых наибольший процент занимают нехватка времени и лень. А что-то было сделано вне плана. Причём это довольно весомые функциональные внедрения в сайт. А также хотел бы рассказать о планах на следующий год.

18 июня 2018 г. 8:01

QtСкрипты на C++

Qt5, Qt, Script, C++

Один из авторов Qt Блога поделился своим опытом использования утилиты Cling. Для решения повседневных задач ему потребовалось написать несколько скриптов, а в качестве скриптового языка он использовал C++!!! Для этого он воспользовался утилитой Cling, которая является интерпретатором C++ на базе компилятора Clang, и создана CERN.

Cling позволяет разработчикам писать сценарии с использованием C и C ++. Поскольку он использует компилятор Clang, он поддерживает последние версии стандарта C ++. Если вы выполняете интерпретатор напрямую, у вас будет живая среда исполнения, в которой вы можете начать писать код на C ++. В качестве части стандартного синтаксиса C/C ++ вы найдете несколько других команд, начинающихся с «.» (Точка).

12 июня 2018 г. 6:34

JavaРеализация Волнового алгоритма (Алгоритма Ли) на Java

алгоритм ли, волновая трассировка, волновой алгоритм, Java

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

Алгоритмов поиска минимального пути большое множество. Но, наиболее простым и эффективным является Алгоритм волновой трассировки (Алгоритм Ли) , который основан на методах поиска в ширину.

В работе данного алгоритма не сложно разобраться. Он будет понятен даже новичку в программировании.

6 июня 2018 г. 20:07

QtСериализация В и Для Qt

Сериализация, Qt, JSON

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

Эта часть посвящена полезной нагрузке от сообщений и её оптимизации.

21 сентября 2018 г. 15:37
irishaa

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

  • Результат 41баллов,
  • Очки рейтинга-8
20 сентября 2018 г. 20:16
ZaRYa

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

  • Результат 46баллов,
  • Очки рейтинга-6
17 сентября 2018 г. 20:45
Иван Поп

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

  • Результат 93баллов,
  • Очки рейтинга8
Последние комментарии
21 сентября 2018 г. 9:24
Евгений Легоцкой

Qt Linux - Урок 001. Автозапуск Qt приложения под Linux

Если я вас правильно понял, то авторестарт сюда дописывается  QString autorunContent. Не могли бы вы не выделять пока слова жирным текстом, в комментариях сломан парсинг тегов, завтра буд...
21 сентября 2018 г. 9:08
avovana

Qt Linux - Урок 001. Автозапуск Qt приложения под Linux

Спасибо за статью! Пример рабочий! Со своим проектом тоже получилось! Наткнулся на эту статью когда решал задачу запуска Qt app с помощью . Когда пробовал с помощью...
20 сентября 2018 г. 13:27
Евгений Легоцкой

Привет Qt для Python

Может быть, я не все новости отслеживаю по Qt. По возможности слежу, но не всегда удаётся.
20 сентября 2018 г. 13:17
OBEH

Привет Qt для Python

По моему. в последней версии Qt анонсировали поддержку Python. Я где-то видел видео. К сожалению. не помню ссылку. Там что-то. типа. проекта "Qt forPython". Все аналогично тому. как для ...
20 сентября 2018 г. 9:58
Евгений Легоцкой

Привет Qt для Python

Qt Creator и Qt Designer по сути не имеют поддержки Python, чтобы код автоматически генерировался и т.д. Нужно устанавливаться дополнительные инструменты. Например сам Python, рекмоендую...
Сейчас обсуждают на форуме
22 сентября 2018 г. 16:21
Евгений Сальников

Проблемы при создании приложения под андроид

Добрый день!Хочу написать приложения для себя на телефон. Но запнулся на этапе создания проекта. в профилях Qt для Qt 5.11.2 for Android ARMv7 и Qt 5.11.2 for Android x86 пишет что: компилятор не...
21 сентября 2018 г. 8:25
Евгений Легоцкой

Прокси-модель, содержащая на 1 столбец больше, чем модель-источник.

Попробуйте ещё PySide 2 - это официально поддерживаемый пакет привязок Python к Qt, возможно, что там не будет таких проблем.
20 сентября 2018 г. 20:06
Евгений Легоцкой

Qt Installer Framework

Добрый день. Зачем собирать Qt Installer Framework-то из исходников? Я ещё понимаю Qt собирают из исходников статически (хотя тоже считаю по большей части бесполезной тратой времени),...
19 сентября 2018 г. 10:19
Евгений Легоцкой

Как в listview подставить модель?

Добрый день. А нельзя ли использовать какой-нибудь глобальный map контейнер, который бы мапил названия моделей на указатели этих моделей?
17 сентября 2018 г. 11:08
Евгений Легоцкой

Проблемы с статической компиляцией Qt с MySQL

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