Je fais un petit plasmoid python qui traite des ressources à distance. Voici le code: glpoidplusieurs mises en page/transitions de mise en page dans un plasmoid python
Il offre une vue des billets (le défaut), une vue qui permettent le remplissage utilisateur et l'envoi d'un nouveau billet, et un dernier à voir un détail de billets ...
Mon problème est que je ne sais pas comment "fermer" la mise en page actuelle lorsque je passe à une autre vue (ou la faire disparaître).
Pour chaque mise en page, i définir des éléments que j'ajouter à la définition de la mise en page et le dernier i afficher la nouvelle mise en page:
Dans un premier temps, j'afficher la vue par défaut avec self.view_tickets_ui(). Chaque mise en page est définie en name_ui() méthodes qui redéfinissent chacune la mise en page et la transmettent à l'applet.
Pour reprendre il est défini comme ceci:
class GLPIApplet(plasmascript.Applet):
def __init__(self,parent,args=None):
plasmascript.Applet.__init__(self,parent)
def init(self):
self.setHasConfigurationInterface(False)
self.setAspectRatioMode(Plasma.Square)
self.resize(400,650)
# new ticket button
self.new = Plasma.PushButton()
self.new.setText('Nouveau Ticket')
self.connect(self.new, SIGNAL('clicked()'), self.new_ticket_ui)
# refresh button
self.refresh = Plasma.PushButton()
self.refresh.setText('Rafraichir')
self.connect(self.refresh, SIGNAL('clicked()'), self.view_tickets_ui)
# initialize
self.view_tickets_ui()
def view_tickets_ui(self, message=None):
# layout of ticket view
self.layout = QGraphicsLinearLayout(Qt.Vertical)
self.layout.itemSpacing(3)
self.layout.addItem(self.new)
self.view_tickets()
self.layout.addItem(self.refresh)
self.applet.setLayout(self.layout)
def new_ticket_ui(self, message=None):
# layout of a new ticket
self.layout = QGraphicsLinearLayout(Qt.Vertical)
self.layout.itemSpacing(3)
message_label = Plasma.Label()
message_label.setText('the message:')
self.layout.addItem(message_label)
self.applet.setLayout(self.layout)
Ici définit simplement initialisation des boutons, puis appelez view_tickets_ui() qui a mis certains éléments et afficher la mise en page. Si j'appelle new_ticket_ui() après, il ajoutera des éléments à la disposition actuelle ... donc les deux sont affichés au même endroit.
Comment puis-je gérer cela s'il vous plaît ??
Merci pour ces conseils Einar, je suis modifier mon code pour voir le résultat et puis dites-vous comment ça va. –
ça marche mieux: merci encore! –