코딩/pyqt, pyside

[pyqt5] 프로그램창을 항상 가장 위에 있게 하면서 동시에 타이틀 바도 없게 하려면?

비스카이비전 2021. 6. 9. 08:39

python, pyqt5로 만든 프로그램창을 항상 맨 위에 있게 하려면 setWindowFlags(Qt.WindowStaysOnTopHint)를 추가해줘야합니다.

 

타이틀 바를 없애려면 setWindowFlags(Qt.FramelessWindowHint)를 추가해줘야 합니다. 

 

그러면 우리는 프로그램창을 항상 맨 위에 있게 하면서 타이틀 바도 없애려면 둘 다 추가해주면 된다고 생각합니다. 

 

setWindowFlags(Qt.WindowStaysOnTopHint)

setWindowFlags(Qt.FramelessWindowHint)

 

그러나 이렇게 해주면 두번째 것만 적용이 됩니다. 둘 다 적용이 되게 하려면 or, 즉 | 를 사용해서 함께 넣어줘야 합니다. 다음과 같이 말이죠.

 

setWindowFlags(Qt.WindowStaysOnTopHint | Qt.FramelessWindowHint)

 

그러면 아무 내용이 없고 위 기능만 담은 아주 간단한 프로그램을 만들어서 보여드리겠습니다. 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtCore import Qt
 
class MyApp(QWidget):
 
    def __init__(self):
        super().__init__()
        self.initUI()
 
    def initUI(self):
        self.setWindowTitle('test')
        self.setWindowFlags(Qt.WindowStaysOnTopHint | Qt.FramelessWindowHint)
        self.move(400400)
        self.resize(200200)
        self.show()
 
 
if __name__ == '__main__':
   app = QApplication(sys.argv)
   ex = MyApp()
   sys.exit(app.exec_())
 
cs

 

위 코드를 실행해보겠습니다. 

 

회색으로 보이는 게 프로그램 창입니다

 

항상 위에 위치하고 타이틀 바가 없는 것을 확인하실 수 있습니다.


1 ··· 3 4 5 6 7