Я пытался встроить график в свое приложение, используя PlotWidget pyqtgraph. Это казалось достаточно простым, когда я следил за этот учебник. Мне удалось показать график достаточно хорошо, проблема в том, что график выглядит сломанным. Вот изображение самого простого приложения, которое я мог сделать, чтобы показать проблему:
Ошибка в графическом приложении
Я использовал следующий код:
from PyQt5.QtWidgets import (QMainWindow, QApplication)
from pyqtgraph import PlotWidget
from PyQt5 import uic
import sys
class UI(QMainWindow):
def __init__(self):
super(UI, self).__init__()
# Load the ui file
uic.loadUi("test.ui", self)
self.GraphWidget = self.findChild(PlotWidget,"GraphWidget")
self.GraphWidget.showGrid(x=True, y=True)
# Show The App
self.show()
# Initialize The App
def main():
app = QApplication(sys.argv)
UIWindow = UI()
app.exec_()
if __name__ == '__main__':
main()
Шаги, которые я выполнил в Qt Designer, были следующими:
Когда я попытался встроить график в свою программу, появилась та же ошибка. Вот почему я сделал этот простой пример, чтобы продемонстрировать это.
Некоторые заметки о моей настройке:
Буду признателен за любую помощь в этом.
РЕДАКТИРОВАТЬ
Файл test.ui содержит следующее:
<?xml version = "1.0" encoding = "UTF-8"?>
<ui version = "4.0">
<class>MainWindow</class>
<widget class = "QMainWindow" name = "MainWindow">
<property name = "geometry">
<rect>
<x>0</x>
<y>0</y>
<width>480</width>
<height>419</height>
</rect>
</property>
<property name = "windowTitle">
<string>MainWindow</string>
</property>
<widget class = "QWidget" name = "centralwidget">
<layout class = "QVBoxLayout" name = "verticalLayout">
<item>
<widget class = "PlotWidget" name = "GraphWidget" native = "true"/>
</item>
</layout>
</widget>
</widget>
<customwidgets>
<customwidget>
<class>PlotWidget</class>
<extends>QWidget</extends>
<header>pyqtgraph</header>
<container>1</container>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>
Возможно, у вас есть два монитора с разными коэффициентами масштабирования? Это может быть то же самое, что и Ошибка PyQtGraph № 756
@titusjan ты абсолютно прав! Это проблема. Большое спасибо за выявление проблемы и указание меня на другую тему.
Как отметил @titusjan, у меня есть два монитора с разными коэффициентами масштабирования. Запуск программы с теми же коэффициентами масштабирования или только с одним монитором устранил проблему.
В Тема выпуска @titusjan также есть некоторые обходные пути.
что находится в файле test.ui