[Python][Qt]Problème d'affichage de tabs

Problème d'affichage de tabs [Python][Qt] - Python - Programmation

Marsh Posté le 04-05-2006 à 13:12:16    


J'ai un problème avec le type de code suivant:
 
Je veux faire un QtabWidget dont les tabs sont créés lorsqu'on clique sur un bouton.  
Mon problème est que si je ne mets pas de tab lors de la création du QTabWidget, c'est-à-dire si je crée un QTabWidget vide, le premier tab créé ensuite n'affiche pas son contenu. Il faut que j'en crée un deuxième, et que je retourne au premier pour voir le contenu du premier.
Par contre, si je crée un tab dès la création du QTabWidget (si je rends active la ligne commentée quoi), il n'y a pas de problème d'affichage.
 
Mais moi je ne veux pas de tabs dès le début. Des solutions?
 
(j'ai python 2.3.5 et Qt 3 sur une Debian)
 

Code :
  1. #!/usr/bin/python
  2. # -*- coding: utf8 -*-
  3. import sys
  4. from qt import *
  5. class MainWidget(QWidget):   
  6.     def __init__(self, *args):
  7.         apply(QWidget.__init__, (self, ) + args)
  8.         self.newTab = QPushButton("Ajouter un tab",self)
  9.         self.mesTabs = QTabWidget(self)
  10.         #self.mesTabs.addTab(QLabel("TEST",self),"TEST" )
  11.        
  12.         self.mainLayout=QVBoxLayout(self)
  13.         self.mainLayout.addWidget(self.newTab)
  14.         self.mainLayout.addWidget(self.mesTabs)
  15.    
  16.         self.connect(self.newTab,SIGNAL("clicked()" ),
  17.                      self.addTab)
  18.     def addTab(self):
  19.         self.mesTabs.addTab(QLabel("test",self.mesTabs),"test" )
  20. def main(args):
  21.     app=QApplication(args)
  22.     widget=MainWidget()
  23.     app.setMainWidget(widget)
  24.     widget.show()
  25.     app.connect(app, SIGNAL("lastWindowClosed()" )
  26.                 , app, SLOT("quit()" ))
  27.     app.exec_loop()
  28. main(sys.argv)

Reply

Marsh Posté le 04-05-2006 à 13:12:16   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed