作業してテストした pyqt4 でカスタム ウィジェットを作成し、メイン ウィンドウにロードする準備ができました。デザイナーに表示されないため、メイン ウィンドウに手動で追加する必要があります。
私のウィジェットは、py ファイルに変換する代わりに uic を使用して ui ファイルをロードします (これまでのところ、手間がかかりません)。したがって、次のようになります。
class widgetWindow(QtGui.QWidget):
def __init__(self, parent = None):
super(widgetWindow, self).__init__(parent)
self.ui = uic.loadUi("widget.ui")
#everything else
メインクラス(簡潔にするための例)で、レイアウトを作成し、ウィジェットをレイアウトに追加してから、メインウィジェットに追加します
class main(QtGui.QMainWindow):
def __init__(self, parent = None):
super(main, self).__init__(parent)
self.ui = uic.loadUi("testWindow.ui")
mainlayout = QtGui.QVBoxLayout()
window = widgetWindow(self)
mainlayout.addWidget(window)
centerWidget = QtGui.QWidget()
centerWidget.setLayout(mainlayout)
self.ui.setCentralWidget(centerWidget)
エラーはスローされず、ウィジェット用のスペースが作成されますが、何も表示されません。
行 window.ui.show() を追加すると、メインウィンドウで占有する必要があるスペースの上に新しいウィンドウがポップアップ表示されます。私は何が欠けていますか?