2009-12-17 16 views
16

Este es el PyQt4, Linux y Python 2.5PyQt: Siempre en primer

¿Puedo hacer PyQt establece mi ventana "siempre visible" sobre otras aplicaciones?

Por ejemplo, en GTK utilizo la propiedad: Modal.

Ahora, en PyQt estoy usando un QWidget, pero no puedo encontrar una manera de hacerlo.

¿Alguna idea?

Respuesta

26

Pase QMainWindow el WindowStaysOnTopHintwindow flag (o use setWindowFlags).

Como en el nombre, esta es una sugerencia para el administrador de ventanas (no es una garantía).

más simple ejemplo posible:

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

¿No se simplificaría la 'QtGui.QMainWindow .__ init __ (self, None, QtCore.Qt.WindowStaysOnTopHint)' al escribir: 'super() .__ init __ (self, None, QtCore.Qt.WindowStaysOnTopHint)'? – NuclearPeon

+0

¿Hay alguna manera de hacer que la ventana salga al frente cuando se crea, pero no siempre se mantiene en la parte superior? – mingxiao

+0

@NuclearPeon Es lo mismo solo si usa herencia individual. https://rhettinger.wordpress.com/2011/05/26/super-considered-super/ –

8
setWindowFlags(QtCore.Qt.WindowStaysOnTopHint) 

setwindowaFlags es un método que puede llamarlo desde form objeto y tome un solo parámetro es una constante QtCore.Qt.WindowStaysOnTopHint que se refieren a que su forma permanece en primer

+0

¿Quizás pueda agregar una explicación de una línea? –

+0

explicación añadida – Abdo