我在 qt 中有一个 python gui。gui是使用设计师的。它包含选项卡。我想添加一个情节。我的绘图对象是一个继承自 QtCore.QObject 的类(称为 MyPlot)。要将它添加到 gui,我可以简单地在继承自 QtGui.QMainWindow 的类 MainWindow 中执行操作:
self.Myplot(self)
self.MyPlot.plot()
但我不知道如何告诉 python 只将绘图放在一个选项卡中。我想我必须在 MainWindow 内做类似的事情:
self.tab(0).Myplot(self)
但我找不到具体是什么。有人有任何线索吗?
谢谢!
编辑:尝试在以下代码中读取由设计器生成的 ui 文件的选项卡失败(我只是试图将我用设计器构建的东西放入选项卡,而不是添加绘图):
import sys
from PyQt4 import QtCore, QtGui, uic
class MyWidget(QtGui.QWidget):
def __init__(self, parent = None):
uic.loadUi('mainwindow.ui', self)
class TabWidget(QtGui.QTabWidget):
def __init__(self, parent=None):
super (TabWidget, self).__init__(parent)
self.setTabsClosable(True)
self.tabCloseRequested.connect(self.removeTab)
self.inside = MyWidget()
def tabInserted(self, index):
self.tabBar().setVisible(self.count() > 1)
def tabRemoved(self, index):
self.tabBar().setVisible(self.count() > 1)
class MainWindow(QtGui.QMainWindow):
def __init__(self,parent=None):
QtGui.QMainWindow.__init__(self, parent)
def main():
qApp = QtGui.QApplication(sys.argv)
tab = TabWidget()
button = QtGui.QPushButton('Hello')
@button.clicked.connect
def clicked():
tab.addTab(QtGui.QLabel('Hello'), 'Hello')
tab.addTab(button, 'Button')
layout = QtGui.QHBoxLayout()
layout.addWidget(tab)
window = QtGui.QWidget()
window.setLayout(layout)
window.resize(600, 400)
window.show()
qApp.exec_()
if __name__ == "__main__":
main()