PDA

Afficher la version complète : Python et Kde



Krocket
01/04/2006, 20h39
Bonjour,

Je programme en Python et Qt sous kde 3.5.2

Dans Kde il est possible de dire a une fenetre quelle reste au dessus des autres.
Exemple la fenetre Calendar reste au dessus des autres, mêmes si une autre fenêtres prend le
focus.

Comment puis-je en programmation python dire que ma fenêtre Qt doit être toujours au dessus ?

Merci

Dudule-le-poisson
01/04/2006, 21h02
Tu utilises les bindings de Qt pour Python je présume ? J'ignore si tu peux utiliser la même documentation que pour de la programmation C++ mais je crois qu'il faut appliquer un style au widget le plus "haut" :

<div class='quotetop'>Citation </div>
Qt::WStyle_StaysOnTop - informs the window system that the window should stay on top of all other windows. Note that on some window managers on X11 you also have to pass WX11BypassWM for this flag to work correctly.[/b]

source : http://doc.trolltech.com/3.3/qt.html#WidgetFlags-enum

Exemple en C++ :
Ce programme affiche un bouton dans une fenêtre en mode "au-dessus des autres" (c'est con je sais) :


#include <qapplication.h>
#include <qpushbutton.h>

int main(int argc, char **argv) {

// creation de l'application
QApplication a(argc, argv);

// creation d'un widget (bouton)
QWidget *b = new QPushButton("&Quitter", NULL);

// ce bouton devient le widget principal
a.setMainWidget(b);

// modification des proprietes du bouton
b -> reparent(NULL, (Qt::WType_TopLevel | Qt::WStyle_StaysOnTop), b->geometry().topLeft(), FALSE);

// affichage et execution de l'application
b -> show();
return(a.exec());
}

Krocket
01/04/2006, 21h31
Tu utilises les bindings de Qt pour Python je présume ? J'ignore si tu peux utiliser la même documentation que pour de la programmation C++ mais je crois qu'il faut appliquer un style au widget le plus "haut" :

<div class='quotetop'>Citation
Qt::WStyle_StaysOnTop - informs the window system that the window should stay on top of all other windows. Note that on some window managers on X11 you also have to pass WX11BypassWM for this flag to work correctly.[/b]

source : http://doc.trolltech.com/3.3/qt.html#WidgetFlags-enum
[/b][/quote]

Cool, merci, ca fonctione j'ai coller Qt.WStyle_StayOnTop dans la définition __init__(...

J'avais compris le principe avec les styles mais pas moyen de le modifier avec la methode .setStyle()

Soit ca fonctionne merci.