2009-12-17 18 views
16
üst

üzerindePyQT: Her zaman bu PyQt4, Linux ve Python 2.5 üzerinde

Ben PyQT diğer uygulamalar üzerinde "her zaman üstte" Benim pencere set yapabilir miyim? Örneğin, GTK'da şu özelliği kullanıyorum: Modal.

Şimdi, PyQt içinde bir QWidget kullanıyorum, ancak bunu yapmanın bir yolunu bulamıyorum.

Herhangi bir fikiriniz var mı?

cevap

26

QMainWindow'u WindowStaysOnTopHintwindow flag (veya setWindowFlags kullanın) geçirin.

İsimdeki gibi, bu pencere yöneticisi için bir ipucu (sert bir garanti değil).

olası en basit örnek:

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

Silinmiyor yapmak atıfta sabit QtCore.Qt.WindowStaysOnTopHint olduğunu 'QtGui.QMainWindow .__ init __ (self, None, QtCore.Qt.WindowStaysOnTopHint)' yazarak basitleştirilebilir: 'super() .__ init __ (self, none, QtCore.Qt.WindowStaysOnTopHint)'? – NuclearPeon

+0

Penceresi, oluşturulduğu zaman ön tarafa gelmesini sağlamak için bir yol var mı, ancak her zaman üstte kalmayın? – mingxiao

+0

@NuclearPeon Sadece tek miras kullanıyorsanız aynı şeydir. https://rhettinger.wordpress.com/2011/05/26/super-considered-super/ –

8
setWindowFlags(QtCore.Qt.WindowStaysOnTopHint) 

setwindowaFlagsform nesneden diyoruz ve sadece bir parametreyi alabilir bir yöntemdir Formunuz En

+0

Belki tek satırlı bir açıklama ekleyebilirsin? –

+0

açıklama eklendi – Abdo