04.PyQt5頂層視窗設定
去掉頂層視窗,自行添加最小、最大、關閉按鈕。且三個按鈕始終位于視窗右上方。
import sys
from PyQt5.Qt import *
class App(QWidget):
def __init__(self):
super().__init__()
self.resize(500,500)
self.wondow_status()
def wondow_status(self):
self.setWindowFlags(Qt.FramelessWindowHint)
self.btn_w = 25
self.btn_h = 25
min_btn=QPushButton(self)
self.min_btn=min_btn
min_btn.resize(self.btn_w,self.btn_h)
min_btn.setStyleSheet('background-color:green')
min_btn.pressed.connect(self.window_min)
max_or_nor_btn=QPushButton(self)
self.max_or_nor_btn=max_or_nor_btn
max_or_nor_btn.resize(self.btn_w,self.btn_h)
max_or_nor_btn.setStyleSheet('background-color:yellow')
max_or_nor_btn.pressed.connect(self.window_max_or_nor)
close_btn=QPushButton(self)
self.close_btn=close_btn
close_btn.resize(self.btn_w,self.btn_h)
close_btn.setStyleSheet('background-color:red')
close_btn.pressed.connect(self.window_close)
def window_min(self):
self.showMinimized()
def window_max_or_nor(self):
if self.isMaximized():
self.showNormal()
else:
self.showMaximized()
def window_close(self):
self.close()
def resizeEvent(self, qre):
print(qre.size().width())
self.min_btn.move(self.width() - self.btn_w * 3, 0)
self.max_or_nor_btn.move(self.width() - self.btn_w * 2, 0)
self.close_btn.move(self.width() - self.btn_w * 1, 0)
if __name__ == '__main__':
app=QApplication(sys.argv)
window=App()
window.show()
sys.exit(app.exec_())