2009-12-17 38 views
16

Đây là trên PyQt4, Linux và Python 2.5PyQt: Luôn ở trên cùng

Tôi có thể đặt PyQt đặt cửa sổ của mình "luôn ở trên cùng" trên các ứng dụng khác không?

Ví dụ: trong GTK tôi sử dụng thuộc tính: Phương thức.

Bây giờ, trong PyQt tôi đang sử dụng QWidget, nhưng, tôi không thể tìm cách để làm điều đó.

Bất kỳ ý tưởng nào ??

Trả lời

26

Vượt qua QMainWindow WindowStaysOnTopHintwindow flag (hoặc sử dụng setWindowFlags).

Như trong tên, đây là gợi ý cho trình quản lý cửa sổ (không phải là đảm bảo khó).

đơn giản nhất ví dụ tốt:

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

Không phải 'QtGui.QMainWindow .__ init __ (self, None, QtCore.Qt.WindowStaysOnTopHint)' được đơn giản hóa bằng cách viết: 'super() .__ init __ (self, None, QtCore.Qt.WindowStaysOnTopHint)'? – NuclearPeon

+0

Có cách nào để cửa sổ bật lên phía trước khi cửa sổ được tạo ra, nhưng không phải lúc nào cũng ở trên đầu? – mingxiao

+0

@NuclearPeon Nó chỉ giống nhau nếu bạn đang sử dụng đơn thừa kế. https://rhettinger.wordpress.com/2011/05/26/super-considered-super/ –

8
setWindowFlags(QtCore.Qt.WindowStaysOnTopHint) 

setwindowaFlags là một phương pháp có thể gọi nó là từ form đối tượng và chỉ mất một tham số là một hằng số QtCore.Qt.WindowStaysOnTopHint mà tham khảo để làm cho hình thức của bạn ở trên đầu trang

+0

có thể bạn có thể thêm một dòng giải thích? Đã thêm –

+0

giải thích – Abdo

Các vấn đề liên quan