© EVILEG 2015-2018
Рекомендует хостинг
TIMEWEB
24 мая 2018 г. 7:28

QtПривет Qt для Python

PyQt5, Qt, Python, PySide2

Скоро будет выпущена технология предоставляющая Qt для Python о чём рассказали в блоге Qt Company. Речь идёт о PySide2, которая явяется официальным аналогом PyQt .

Рассмотрим создание не сложного приложения показывающего простоту Qt для Python с использованием виджетов QWidgets. Все скрипты будут иметь схожую структуру:

  1. Создаем QApplication
  2. Затем добавляем все QWidgets и структуры которые мы хотим использовать, (например QLabel)
  3. Показываем приложение и запускаем QApplication
31 марта 2018 г. 15:17
spyAndrey

Интерактивная кнопка на QGraphicsScene

Приветствую Евгений,
есть такая программа:
https://www.youtube.com/watch?v=cz6BVlHU_so&t=455s
проще говоря конфигуратор окон.

Хочу попробоать зделать такого же типа, но для дверей.
На python и PyQt, соответственно.

Пока стоит вопрос как реализовать объект "интерактивная дверь"

У меня к тебе такие вопросы:
- я пришёл к решению, что надо это реализовать через QGraphicsScene, верно?
почему такой вопрос, поскольку рисовать можно практически на любом компоненте,
вроде как...
Нашел статью, как реализуется кнопка:
https://habrahabr.ru/post/139933/
поковырял её и код зделал рабочим для python3 и pyqt5, приводить не буду,
думаю нет необходимости, примитив...

Следующие два вопроса, такие:
-я не понял как зделать класс на основе QGraphicsWidget?
сломал голову но не понял...
мне нужно два прямоугольника, вписанных друг в друга, которые в целом ведут
себя как кнопка.

(у тебя есть видео для С++,
https://www.youtube.com/watch?v=cPvRvX4o5Xc
блин почти то что нужно, как то привык синтаксису питона не могу понять
какперенести в python)

К чему я пришёл, то что это можно реализовать по другому (мне хотя бы это
понятнее, а может так и правильней)
я создам объект на основе QGraphicsScene, в нем будут фигуры (их много, они
разные) для начала два приямоугольника, отлавниваю коодинаты клика и в
зависимости в каком месте будет клик соответствующее поведение.

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

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

2 апреля 2017 г. 18:22

PyQt5PyQt5 - Урок 007. Работаем с QML QtQuick (Сигналы и слоты)

PyQt5, QML, QtQuick, Signal, Slot

А теперь более глубоко погрузимся в работу с Qt с помощью PyQt5, воспользовавшись современными возможностями Qt. Под такими возможностями я подразумеваю QtQuick и QML. PyQt5 позволяет использовать классы Qt, которые могут обрабатывать QML код, а следовательно, можно написать интерфейс на QML, а также передавать сигналы в QML слой и вызывать слоты объектов, наследованных от QObject из QML слоя.

Чтобы познакомиться с такими возможностями PyQt5, напишем программу, которая реализует следующие задачи:

  • Интерфейс программы должен быть написан на QML
  • Должен быть реализован класс, наследованный от QObject и написанный на python, с которым будем взаимодействовать из QML
  • Приложение с помощью данного класса должно будет складывать и вычитать целые числа

Внешний вид приложения должен выглядеть следующим образом:

15 марта 2017 г. 17:10

PyQt5PyQt5 - Урок 006. Работа с QTableWidget

PyQt5, Python, QTableWidget

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

Выглядеть таблица будет следующим образом:

15 марта 2017 г. 16:12

PyQt5PyQt5 - Урок 005. Автодополнение для поля ввода с помощью QCompleter

PyQt5, QCompleter, Python, QLineEdit

В библиотеке Qt присутствует класс QCompleter, который позволяет предлагать автодополнение к вводимому слову в полях ввода. Также данный класс поддерживается и библиотекой PyQt5.

В минимально варианте применение данного класса может выглядеть следующим образом:

# Создаём поле ввода
lineEdit = QLineEdit(self)
strList = ['Python', 'PyQt5', 'Qt', 'Django', 'QML']    # Создаём список слов
# Создаём QCompleter, в который устанавливаем список, а также указатель на родителя
completer = QCompleter(strList, lineEdit)
lineEdit.setCompleter(completer)        # Устанавливает QCompleter в поле ввода
15 января 2017 г. 11:49

PyQt5PyQt5 - Урок 004. Использование QSettings

PyQt5, QSettings, Qt, python

Ознакомимся с использование QSettings в PyQt5. Для этого предлагаю написать небольшое приложение, в котором будет один единственный чекбокс, состояние которого мы будем сохранять в настройках. Состояние чекбокса будет сохраняться по клику на данный чекбокс. После закрытия программы и повторного его открытия чекбокс будет выставлен с тем состоянием, в котором он был при закрытии программы.

27 ноября 2016 г. 17:13

PyQt5PyQt5 - Урок 003. QSystemTrayIcon - Как свернуть приложение в трей

PyQt5, Pycharm, Qt, QSystemTrayIcon

Аналогичная статья на Qt/C++

Одной из первых статей по работе с Qt была статья по работе с QSystemTrayIcon . А теперь настал черёд аналогичного материала, но уже на Python с применением библиотеки PyQt5.

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

Структура проекта в данном случае минимальна. Будет всего лишь один файл, который и будет запускаться. То есть файл __main__.py .

Само приложение будет выглядеть следующим образом.

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

3 сентября 2016 г. 15:03

PyQt5PyQt5 - Урок 002. Hello World на PyQt5

qt, PyCharm, qt уроки, qt5, PyQt5

Python — это высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности разработчика и читаемости кода, как говорит нам Википедия. А также активно используется для написания Web-приложений. Ну а для работы с Qt для Python была разработана компанией Riverbank Computing библиотека PyQt5, которая является набором "привязок" к библиотеке Qt5.

Из интереса, я решил написать небольшой Hello World с использованием PyQt5.

Установка

Первым делом устанавливаем Python, в моём случае это Python 3.5.2.

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

Далее необходимо установить PyQt5. В случае Linux можно либо установить с помощью стандартного менеджера пакетов. Например, для deb-based дистрибутивов:

sudo apt-get install python python3-pyqt5 pyqt5-dev-tools

Либо установить сначала утилиту pip для установки пакетов Python:

sudo apt-get install python-pip

И уже произвести установку с помощью данной утилиты, что будет аналогично как для Windows, так и для Linux систем:

pip install PyQt5

Для разработки на Python была выбрана IDE PyCharm.

25 июня 2018 г. 11:55
lebendig

C++ - Тест 006. Перечисления

  • Результат 100 баллов
  • Очки рейтинга 10
25 июня 2018 г. 11:24
lebendig

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

  • Результат 100 баллов
  • Очки рейтинга 10
25 июня 2018 г. 8:48
lebendig

C++ - Тест 004. Указатели, Массивы и Циклы

  • Результат 100 баллов
  • Очки рейтинга 10
Последние комментарии
25 июня 2018 г. 9:34
EVILEG

Как написать игру на Qt - Урок 4. Враг - смысл в выживании

Там неправильный подсчёт был по направлению и полный бардак был с поведением, эти 45 градусов исправляли ситуацию. Точную причину уже совсем не помню. А вообще все эти расчёты довольно...
25 июня 2018 г. 9:13
MarkSD

Как написать игру на Qt - Урок 4. Враг - смысл в выживании

Здравствуйте, Подскажите, пжлст, как работает этот код : QLineF lineToTarget(QPointF(0, 0), mapFromItem(target, 0, 0));  // Проводим линию от паука к мухе qreal angl...
25 июня 2018 г. 7:51
EVILEG

PyQt5 - Урок 003. QSystemTrayIcon - Как свернуть приложение в трей

Если не ошибаюсь, можно просто удалить вот эту строку central_widget.setLayout(grid_layout) Там указатель на парента передаётся в само размещение, что автоматически заменяет в размещен...
Сейчас обсуждают на форуме
25 июня 2018 г. 17:38
IscanderChe

Иконка исполняемого файла

Спасибо!
25 июня 2018 г. 13:12
Arrow

QComboBox и База данных

И если можно еще один вопрос. Таблицы во вложении. Если писать: mainModel = new QSqlRelationalTableModel(this);mainModel-&g...;
25 июня 2018 г. 7:49
EVILEG

На чём сделан этот сайт?

Добрый день! На сервере сайта установлена Ubuntu 16.04. В качестве сервера используется VDS. Хостинг-провайдер Timeweb . Сайт написан на Django/Python, для...
19 июня 2018 г. 7:56
EVILEG

как редактировать порядок обхода этементов по нажатию TAB в Qt5 qml

Что-то наподобие такого TextField { Keys.onReturnPressed: nextItemInFocusChain().forceActiveFocus()}

Рекомендуемые страницы