Mettre un QFrame dans un QFrame...

Mettre un QFrame dans un QFrame... - Python - Programmation

Marsh Posté le 31-07-2007 à 12:16:22    

Bonujour à tous et à toutes,
 
Je souhaiterais à l'initialisation d'un objet QFrame instancier une autre QFrame et l'ajouter à mon QFrame courant.
 
 
class blabla(QFrame):
 
   def __init__(self,........):
 
       maQFrameObjet = QFrame(.....
       self.ajoutMaQFrame(maQFrameObjet )
 
 
Merci
 
 
Dois je utiliser un QSplitter? ou autre...?

Message cité 1 fois
Message édité par jijiz le 31-07-2007 à 12:18:48
Reply

Marsh Posté le 31-07-2007 à 12:16:22   

Reply

Marsh Posté le 31-07-2007 à 14:08:50    

0 vues ...
 
:cry:

Reply

Marsh Posté le 31-07-2007 à 14:28:32    

Bonjour, je pense que pour mettre une QFrame ds une QFrame, la meilleure solution c'est la vaseline... ^^

Reply

Marsh Posté le 31-07-2007 à 14:32:17    

boulet, ce gars est à coté de moi, ne le tt pas... quoi que si en fait TT le 2 jours ça lui fera du bien ^^

Reply

Marsh Posté le 31-07-2007 à 15:50:36    

jijiz a écrit :

Bonujour à tous et à toutes,
 
Je souhaiterais à l'initialisation d'un objet QFrame instancier une autre QFrame et l'ajouter à mon QFrame courant.
 
 
class blabla(QFrame):
 
   def __init__(self,........):
 
       maQFrameObjet = QFrame(.....
       self.ajoutMaQFrame(maQFrameObjet )
 
 
Merci
 
 
Dois je utiliser un QSplitter? ou autre...?


C'est un peu bizarre. Une QFrame est un espace de travail qui est sensé suffire à elle-même. "Normallement" (je ne connais pas ton pb) tu ne devrais pas avoir besoin d'y insérer un autre QFrame. Tu devrais arriver à t'en sortir avec des QHBoxLayout et des QVBoxLayout pour y ranger tes objets en horizontal ou en vertical
 
Voici un exemple d'un de mes premiers essais PyQT pour ranger plusieurs instances d'un objet de ma fabrication (un label + un bouton associés) dans une frame

#!/usr/bin/python
# coding: Latin-1 -*-
 
import sys
from qt import *
 
class QtAppli(QApplication):
 "Fenêtre de l'application"
 
 # Constructeur fenêtre
 def __init__(self,
  argv):
 
  # Appel constructeur de l'objet hértié
  QApplication.__init__(self, argv)
 
  # Attributs de l'application
  self.argv=argv
 
  # Widget principale
  self.wid=QMainWindow()
  self.setMainWidget(self.wid)
  self.wid.setCentralWidget(QWidget(self.wid))
  self.wid.statusBar()
 
  # Titre
  self.wid.setCaption("toto" )
 
  # Un espace de rangement
  box=QVBoxLayout(self.wid.centralWidget())
  lab1=QLabel(self.wid.centralWidget())
  lab1.setText("Central" )
  box.addWidget(lab1)
   
  # Le ressort
  spacer=QSpacerItem(0, 0, QSizePolicy.Minimum, QSizePolicy.Expanding)
  box.addItem(spacer)
 
  # Une sous-fenêtre perso rangée dans l'espace de rangement vertical
  sub1=QtFrame(self.wid.centralWidget())
  box.addWidget(sub1)
 
  # Une autre sous-fenêtre perso rangée dans l'espace de rangement vertical
  sub2=QtFrame(self.wid.centralWidget())
  box.addWidget(sub2)
 
 # Affichage et lancement application
 def run(self):
  self.wid.show()
  self.exec_loop()
 
class QtFrame(QFrame):
 "Sous-Fenêtre de test"
 
 # Constructeur fenêtre
 def __init__(self,
  Widget):
 
  # Appel constructeur de l'objet hértié
  QFrame.__init__(self, Widget)
 
  # Un espace de rangement horizontal
  box=QHBoxLayout(self)
 
  # Un sous-label rangé dans la sous-fenêtre horizontale
  lab1=QLabel(self)
  lab1.setText("Moi" )
  box.addWidget(lab1)
 
  # Le ressort
  spacer=QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum)
  box.addItem(spacer)
 
  # Un bouton rangé dans la sous-fenêtre horizontale
  lab2=QPushButton(self)
  lab2.setText("Bouton" )
  box.addWidget(lab2)
  self.connect(lab2, SIGNAL("clicked()" ), self.slotBtn)
 
 def slotBtn(self):
  print "clicked"
 
Appli=QtAppli(sys.argv)
Appli.run()


 

jijiz a écrit :

0 vues ...  
 
:cry:


Ben oui, faut pas croire que tout le monde passe son heure de déjeuner sur les fofo à se précipiter sur les pb des autres...


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Sujets relatifs:

Leave a Replay

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