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

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

LLenich
Вижу, что ответов нет, поэтому попытаюсь упростить задачу.
Догадываюсь, что 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.
Замкнутый круг.
Одноячеячного Лэйаута нет, а во Фрайм и Виджет не добавляется.
Как правильно прописать?

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

LLenich
Необходимо с использованием Qt дизайнера
В питоне графики практически всегда делают при помощи matplotlib или его аналогов. Его в Qt канву можно добавить. Только как это делать ИСКЛЮЧИТЕЛЬНО дизайнером похоже никто не знает.
LLenich
doza_and
В питоне графики практически всегда делают при помощи matplotlib или его аналогов. Его в Qt канву можно добавить.
Но, это же есть часть решения! Спасибо.
Осталось узнать, как создать график при помощи matplotlib и добавить его в Widget.
Поможете?
Qt designer нужен лишь для создания компоновки, где расставляются виджеты.
Сейчас я делаю так:
win = pg.GraphicsLayoutWidget ()
self.horizontalLayout_Orbit.addWidget(win)
Видимо, что-то похожее можно сделать с matplotlib.
doza_and
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

Rodegast
> И вообще хотелось бы не использовать 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 добавленный в дизайнере.
LLenich

Спасибо за советы.
Буду пробовать.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB