У меня хорошо работает приложение на Python с графическим интерфейсом, созданным на tkinter.Мне нужно реализовать виджет qt из pyqtgraph, показывающий график (большие данные, поэтому libplot не может это сделать).Я импортирую необходимый материал Qt:
import pyqtgraph as pg
from pyqtgraph.Qt import QtCore, QtGui
и следующий код где-то из класса tkinter открывает его в новом окне и показывает график:
def preview_show():
APP = QtGui.QApplication([])
## Define a top-level widget to hold everything
win = QtGui.QWidget()
## Create a grid layout to manage the widgets size and position
layout = QtGui.QGridLayout()
win.setLayout(layout)
pl = pg.PlotWidget()
pl.plot(self.DataSeries, pen=(255, 0, 0), name="Red curve")
layout.addWidget(pl)
win.show()
APP.exec_()
Затем этот виджет имеет некоторые функции, доступныещелкнув правой кнопкой мыши на графике, и они мне нужны (например, экспорт изображения).Но когда я пытаюсь нажать на любую из этих функций - ядро python падает с кодом ошибки 255. У меня есть идея, что события qt не обрабатываются.Поэтому я попытался вызвать обработчик событий Qt в цикле из python вместо вызова APP.exec _ ():
while TRUE:
APP.processEvents()
time.sleep(0.002)
, но он работает так же (окно с графиком открывается, но останавливается при попытке доступа к другимвстроенные функции).Я думал о запуске виджета Qt в отдельном потоке, но если я не могу сделать это в цикле, то я думаю, что он также не будет выполняться в потоке.
Я прочитал это Python работает сQt, цикл обработки событий , но он не работает для меня.
Итак, вопрос в том, как правильно обработать виджет Qt из приложения tkinter (в отдельном окне) со всеми запущенными встроенными функциями?Я прав, что проблема вызвана неправильной обработкой событий qt из приложения tkinter?