2016-08-17 15 views
0

PyQtを使用して3つのタブを持つダイアログを作成しようとしています。しかし、ダイアログは表示されますが、埋め込まれたウィジェットは表示されないため、私は嫌です!これは非常に単純な問題であると思いますが、それに対応する非常に単純な解決策ですが、私は打撃を受けます!誰もヒントを与えることができますか?前もって感謝します!ここでPyQt - 埋め込みウィジェットを表示しないタブ付きダイアログ

は私のコードは、これまでのところです:ここ

import sys 
from PyQt4.QtCore import * 
from PyQt4.QtGui import * 

class TabbedDialog(QDialog): 
    def __init__(self, parent = None): 
     super(TabbedDialog, self).__init__(parent) 

     self.tabWidget = QTabWidget() 
     self.tabWidget.tab1 = QWidget() 
     self.tabWidget.tab2 = QWidget() 
     self.tabWidget.tab3 = QWidget() 

     self.tabWidget.addTab(self.tabWidget.tab1,"Tab 1") 
     self.tabWidget.addTab(self.tabWidget.tab2,"Tab 2") 
     self.tabWidget.addTab(self.tabWidget.tab3,"Tab 3") 
     self.tab1UI() 
     self.tab2UI() 
     self.tab3UI() 
     self.setWindowTitle("tab demo") 

    def tab1UI(self): 
     layout = QFormLayout() 
     layout.addRow("Name",QLineEdit()) 
     layout.addRow("Address",QLineEdit()) 
     self.tabWidget.setTabText(0,"Contact Details") 
     self.tabWidget.tab1.setLayout(layout) 

    def tab2UI(self): 
     layout = QFormLayout() 
     sex = QHBoxLayout() 
     sex.addWidget(QRadioButton("Male")) 
     sex.addWidget(QRadioButton("Female")) 
     layout.addRow(QLabel("Sex"),sex) 
     layout.addRow("Date of Birth",QLineEdit()) 
     self.tabWidget.setTabText(1,"Personal Details") 
     self.tabWidget.tab2.setLayout(layout) 

    def tab3UI(self): 
     layout = QHBoxLayout() 
     layout.addWidget(QLabel("subjects")) 
     layout.addWidget(QCheckBox("Physics")) 
     layout.addWidget(QCheckBox("Maths")) 
     self.tabWidget.setTabText(2,"Education Details") 
     self.tabWidget.tab3.setLayout(layout) 

if __name__ == '__main__': 
    app = QApplication(sys.argv) 
    form = TabbedDialog() 
    retval = form.exec_() 

答えて

1

のinit方法で問題

に私の解決策ですが、私はそれに「tabWidget」ウィジェットを追加し、その後、レイアウトを宣言しましたそのレイアウトをQDialogのレイアウトとして設定します。

def __init__(self, parent = None): 
    super(TabbedDialog, self).__init__(parent) 

    self.tabWidget = QTabWidget() 
    self.tabWidget.tab1 = QWidget() 
    self.tabWidget.tab2 = QWidget() 
    self.tabWidget.tab3 = QWidget() 

    self.tabWidget.addTab(self.tabWidget.tab1,"Tab 1") 
    self.tabWidget.addTab(self.tabWidget.tab2,"Tab 2") 
    self.tabWidget.addTab(self.tabWidget.tab3,"Tab 3") 
    self.tab1UI() 
    self.tab2UI() 
    self.tab3UI() 
    self.setWindowTitle("tab demo") 

    # Here is the addition to the code. 
    mainLayout = QVBoxLayout() 
    mainLayout.addWidget(self.tabWidget) 
    self.setLayout(mainLayout) 
+0

ありがとうございました。 – maurobio

+0

あなたの歓迎... – syncster31

関連する問題