PyQt - rendere livello di finestra top
Domanda
ho bisogno di fare il mio livello superiore della finestra quando ho bisogno. Codice di finestra di creazione:
class Application(QtGui.QMainWindow):
def __init__(self, parent=None):
QtGui.QMainWindow.__init__(self, None, Qt.Tool | Qt.FramelessWindowHint)
self.setFocusPolicy(Qt.StrongFocus)
self.setAttribute(Qt.WA_QuitOnClose, True)
E quando ho bisogno di faccio:
self.setWindowFlags(Qt.WindowStaysOnTopHint)
Ma dopo l'esecuzione di questa parte del codice di mia finestra si nasconde ... non so, dove sta. Ma il mio programma non si chiude! Aiuto! Come posso fare la mia finestra in alto più a necessità momento?
Soluzione
Calling .Show () o .raise () sulla vostra finestra dovrebbe rendere più alto obiettivo.
dal doc per setWindowFlags () :
Nota: Questa funzione chiama setParent () quando si cambia i flag per una finestra, causando il widget da nascondere. voi deve chiamare show () per rendere il widget nuovo visibile ..
Volevo solo aggiungere per chiunque altro che trova questa domanda che il doc Qt per C ++ è una risorsa molto buona anche quando si utilizza PyQt, basta assicurarsi di puntare alla versione del documento Qt C ++ che si applica alla versione di PyQt (L'ultima PyQt è compilato con 4.4, se questo è ciò che si sta utilizzando).