【发布时间】:2020-06-20 03:40:02
【问题描述】:
是“Promote To...”功能,在 pyqtgraph 0.10.0 文档中有描述:
http://www.pyqtgraph.org/documentation/how_to_use.html#embedding-widgets-inside-pyqt-applications
还使用 PySide2 和 pyqtgraph 最近的开发分支?当我使用 QtDesigner 创建一个 .ui 文件并按照“Promote to...”说明进行操作时,小部件中不会显示任何 pyqtgraph:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import sys
from PySide2 import QtWidgets, QtUiTools, QtCore
import pyqtgraph as pg
def load_ui(fname):
fd = QtCore.QFile(fname)
fd.open(QtCore.QFile.ReadOnly)
loader = QtUiTools.QUiLoader()
window = loader.load(fd)
fd.close()
return window
class First:
def __init__(self):
self.window = load_ui('test.ui')
def show(self):
self.window.show()
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
main = First()
main.show()
sys.exit(app.exec_())
在 PyQt5 和 pyqtgraph 0.10.0 中,这确实有效:小部件将显示为一个空的 pyqtgraph 图。
编辑:
这里是 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>800</width>
<height>600</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget">
<widget class="PlotWidget" name="Graph">
<property name="geometry">
<rect>
<x>40</x>
<y>20</y>
<width>701</width>
<height>501</height>
</rect>
</property>
</widget>
</widget>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>26</height>
</rect>
</property>
</widget>
<widget class="QStatusBar" name="statusbar"/>
</widget>
<customwidgets>
<customwidget>
<class>PlotWidget</class>
<extends>QGraphicsView</extends>
<header>pyqtgraph</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>
【问题讨论】: