2011-05-27 8 views
1

Juste un widget principal avec un widget onglets dedans.PyQt - redimensionner le widget parent à son enfant

Le problème est le suivant: lorsque je l'exécute, seule une partie des onglets est affichée (comme indiqué sur l'image ci-jointe). Donc, vous devez redimensionner ou faire défiler les onglets pour obtenir le dernier.

enter image description here

Comment puis-je régler pour que la fenêtre affiche tous les onglets dès le début?

import sys 
from PyQt4.QtGui import * 

class MainWindow(QWidget): 
    def __init__(self, parent=None): 
     QWidget.__init__(self, parent) 

     # making tabs 
     tabs = QTabWidget() 
     tabs.addTab(QWidget(), '111111') 
     tabs.addTab(QWidget(), '222222') 
     tabs.addTab(QWidget(), '333333') 
     tabs.addTab(QWidget(), '444444') 

     # inserting in vbox 
     vbox = QVBoxLayout(self) 
     vbox.addWidget(tabs) 

app = QApplication(sys.argv) 
myapp = MainWindow() 
myapp.show() 
sys.exit(app.exec_()) 

Comment puis-je le redimensionner pour tous les onglets?
Et où le problème est - est-ce le widget parent, ou les onglets, ou vbox?

Répondre

3

Vous pouvez utiliser QTabWidget.setUsesScrollButtons(bool)

import sys 
from PyQt4.QtGui import * 

class MainWindow(QWidget): 
    def __init__(self, parent=None): 
     QWidget.__init__(self, parent) 

     # making tabs 
     tabs = QTabWidget() 
     tabs.setUsesScrollButtons(False) #here is 

     tabs.addTab(QWidget(), '111111') 
     tabs.addTab(QWidget(), '222222') 
     tabs.addTab(QWidget(), '333333') 
     tabs.addTab(QWidget(), '444444') 
     # inserting in vbox 
     vbox = QVBoxLayout(self) 
     vbox.addWidget(tabs) 

app = QApplication(sys.argv) 
myapp = MainWindow() 
myapp.show() 
sys.exit(app.exec_()) 

http://doc.qt.nokia.com/4.7/qtabwidget.html#usesScrollButtons-prop

Questions connexes