私はqtにpython guiを持っています。GUIはデザイナーを使用して構築されています。タブが含まれています。プロットを追加したい。私のプロット オブジェクトは、QtCore.QObject を継承するクラス (MyPlot と呼ばれます) です。これを GUI に追加するには、QtGui.QMainWindow から継承するクラス MainWindow 内で簡単に行うことができます。
self.Myplot(self)
self.MyPlot.plot()
しかし、プロットを1つのタブにのみ配置するように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()