Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 5, 2022 10:41:21

LLenich
Зарегистрирован: 2022-02-05
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Построение графика с использованием Qt designer

Добрый день.
Начинаю свое знакомство с Питоном.
Необходимо с использованием Qt дизайнера создать интерфейс, на котором размещаются несколько графиков.
Я в дизайнере использовал QMainWindow. На нем расположил PlotWidget.
Сохранил и конвертировал в py-файл.
Оболочка должна быть отвязана от кода, поэтому создал main.py файл.
Но вижу, что не могу задавать подписи по осям и заголовок графиков.
Функции setlabel вообще нет. Есть лишь setrange.
Помогите, пожалуйста, разобраться.
Может, не хватает каких-то библиотек, или PlotWidget вообще для этого не пригоден.
Может, нужно использовать просто Widget?
Как в этом случае должен выглядеть мой main.py файл?
Для компиляции использую PyCharm под виндой.
Импортирую
from pyqtgraph import PlotWidget
но вижу, что она никак не используется.
Это мой первый опыт с питоном, поэтому требуется соответствующее объяснение.
Спасибо.

Не получается прикрепить два файла к сообщению. Поэтому положил их коды в один файл.

Прикреплённый файлы:
attachment Example_test.py (3,3 KБ)

Офлайн

#2 Фев. 6, 2022 17:13:03

LLenich
Зарегистрирован: 2022-02-05
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Построение графика с использованием Qt designer

Вижу, что ответов нет, поэтому попытаюсь упростить задачу.
Догадываюсь, что pyqtgraph в принципе на поддерживает подписи осей.
Нашел такое решение.
Добавляю в Qt designer Horizontal Layout.
Затем делаю следующее:
import pyqtgraph as pg
pg.setConfigOptions (antialias = True)
win = pg.GraphicsLayoutWidget ()
self.horizontalLayout_Orbit.addWidget(win)

Этот метод работает, но график добавляется одновременно в две ячейки горизонтального Лэйаута.
Как добавлять его только в один?

И вообще хотелось бы не использовать Horizontal Layout, а использовать Frame или Widget.
Но для них я не могу использовать .addWidget(win). Есть опция addAction(), но выдается сообщение об ошибке, что с помощью нее я не могу добавлять элементы класса GraphicsLayoutWidget.
Замкнутый круг.
Одноячеячного Лэйаута нет, а во Фрайм и Виджет не добавляется.
Как правильно прописать?

Спасибо.

Офлайн

#3 Фев. 6, 2022 19:08:09

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Построение графика с использованием Qt designer

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

LLenich
Необходимо с использованием Qt дизайнера
В питоне графики практически всегда делают при помощи matplotlib или его аналогов. Его в Qt канву можно добавить. Только как это делать ИСКЛЮЧИТЕЛЬНО дизайнером похоже никто не знает.



Отредактировано doza_and (Фев. 6, 2022 19:10:05)

Офлайн

#4 Фев. 7, 2022 07:19:23

LLenich
Зарегистрирован: 2022-02-05
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Построение графика с использованием Qt designer

doza_and
В питоне графики практически всегда делают при помощи matplotlib или его аналогов. Его в Qt канву можно добавить.
Но, это же есть часть решения! Спасибо.
Осталось узнать, как создать график при помощи matplotlib и добавить его в Widget.
Поможете?
Qt designer нужен лишь для создания компоновки, где расставляются виджеты.
Сейчас я делаю так:
win = pg.GraphicsLayoutWidget ()
self.horizontalLayout_Orbit.addWidget(win)
Видимо, что-то похожее можно сделать с matplotlib.

Офлайн

#5 Фев. 7, 2022 18:23:23

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Построение графика с использованием Qt designer

LLenich
Осталось узнать, как создать график при помощи matplotlib
https://matplotlib.org/3.1.0/gallery/pyplots/fig_axes_labels_simple.html
LLenich
и добавить его в Widget.
https://matplotlib.org/stable/gallery/user_interfaces/embedding_in_qt_sgskip.html



Офлайн

#6 Фев. 7, 2022 23:14:24

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2753
Репутация: +  184  -
Профиль   Отправить e-mail  

Построение графика с использованием Qt designer

> И вообще хотелось бы не использовать Horizontal Layout, а использовать Frame или Widget.

 import pyqtgraph as pg
hl1 = QtGui.QHBoxLayout(self.grafik1)
hl1.setSpacing(0)
hl1.setContentsMargins(0, 0, 0, 0)
self.PW1 = pg.PlotWidget()
self.PW1.setBackground("#fff")
hl1.addWidget(self.PW1)
self.grafik1 это QtGui.QWidget добавленный в дизайнере.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#7 Фев. 8, 2022 06:33:07

LLenich
Зарегистрирован: 2022-02-05
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Построение графика с использованием Qt designer


Спасибо за советы.
Буду пробовать.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version