我使用PyQt5创建一个相当简单的UI,允许用户打开数据文件夹,然后根据需要绘制该数据的不同部分。不过,关于如何在选择"导入数据"之后制作导入的数据,我有点卡住了。按钮可用于窗口小部件的其他部分,而不使用全局
代码
class DataViewer(QtWidgets.QWidget):
def __init__(self):
QtWidgets.QWidget.__init__(self)
self.setupUI(self)
def setupUI(self, Form):
Form.resize(1742, 988)
Form.setContextMenuPolicy(QtCore.Qt.PreventContextMenu)
Form.setWindowTitle("Data Viewer")
self.windowLayout = QtWidgets.QHBoxLayout(Form)
self.windowLayout.setObjectName("horizontalLayout_window")
self.leftColumn = QtWidgets.QVBoxLayout()
self.leftColumn.setObjectName("leftColumnLayout")
self.treeWidget = QtWidgets.QTreeWidget(Form)
self.treeWidget.setObjectName("treeWidget")
self.loadDataFolder_btn = QtWidgets.QPushButton("Load Data Folder", Form)
self.loadDataFolder_btn.setObjectName("loadDataFolder_btn")
self.loadDataFolder_btn.clicked.connect(self.load_data_folder)
self.leftColumn.addWidget(self.treeWidget)
self.leftColumn.addWidget(self.loadDataFolder_btn)
self.line = QtWidgets.QFrame(Form)
self.line.setFrameShape(QtWidgets.QFrame.VLine)
self.line.setFrameShadow(QtWidgets.QFrame.Sunken)
self.line.setObjectName("line")
self.plotWidget = QtWidgets.QGraphicsView(Form)
self.plotWidget.setObjectName("plotWidget")
self.windowLayout.addLayout(self.leftColumn)
self.windowLayout.addWidget(self.line)
self.windowLayout.addWidget(self.plotWidget, QtCore.Qt.AlignCenter)
def load_data_folder(self):
folder = QtWidgets.QFileDialog.getExistingDirectory(self)
df = pvi.import_folder(folder)
注意 - pvi.import只是我编写的另一个模块的函数,它处理我们的数据收集软件生成的数据文件。
我确信有一种明显的方法可以做到这一点,但我对此非常陌生(随时随地学习)。
由于
答案 0 :(得分:0)
您可以使用DataViewer
实例作为命名空间来存储导入的数据,而不是使用全局:
def load_data_folder(self):
folder = QtWidgets.QFileDialog.getExistingDirectory(self)
self.df = pvi.import_folder(folder)
然后,可以通过self
的任何其他方法通过DataViewer
访问数据。