2009-12-17 48 views
16

Questo è il PyQt4, Linux e Python 2.5PyQt: Sempre in primo piano

Posso fare PyQt impostato la mia finestra "sempre in primo piano" rispetto ad altre applicazioni?

Ad esempio, in GTK uso la proprietà: Modale.

Ora, in PyQt sto usando un QWidget, ma non riesco a trovare un modo per farlo.

Qualche idea ??

risposta

26

Passare la QMainWindow WindowStaysOnTopHintwindow flag (o utilizzare setWindowFlags).

Come nel nome, questo è un suggerimento per il gestore di finestre (non è una garanzia difficile).

più semplice esempio possibile:

import sys 
from PyQt4 import QtGui, QtCore 

class mymainwindow(QtGui.QMainWindow): 
    def __init__(self): 
     QtGui.QMainWindow.__init__(self, None, QtCore.Qt.WindowStaysOnTopHint) 

app = QtGui.QApplication(sys.argv) 
mywindow = mymainwindow() 
mywindow.show() 
app.exec_() 
+1

Non sarebbe 'semplificata la' QtGui.QMainWindow .__ init __ (self, None, QtCore.Qt.WindowStaysOnTopHint) 'scrivendo:' super() .__ init __ (self, None, QtCore.Qt.WindowStaysOnTopHint) '? – NuclearPeon

+0

C'è un modo per far apparire la finestra in primo piano quando è stata creata, ma non rimanere sempre in primo piano? – mingxiao

+0

@NuclearPeon È lo stesso solo se si utilizza l'ereditarietà singola. https://rhettinger.wordpress.com/2011/05/26/super-considered-super/ –

8
setWindowFlags(QtCore.Qt.WindowStaysOnTopHint) 

setwindowaFlags è un metodo che può chiamare da form oggetto e basta prendere un parametro è una costante QtCore.Qt.WindowStaysOnTopHint che si riferiscono a rendere il vostro modulo rimane in cima

+0

forse è possibile aggiungere una spiegazione di una riga? Aggiunta –

+0

aggiunta – Abdo

Problemi correlati