一、效果图
去掉了窗口的边框,可以自定义标题栏(含关闭、缩小窗口的标题栏)
二、详细代码
设置QMainWindow的centralwidget的border样式即可
# coding: utf-8
import sys
from PyQt5.Qt import Qt
from PyQt5.QtWidgets import *
class MainWindow(QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
# Window size
self.WIDTH = 300
self.HEIGHT = 300
self.resize(self.WIDTH, self.HEIGHT)
# Widget
self.centralwidget = QWidget(self)
self.centralwidget.resize(self.WIDTH, self.HEIGHT)
# Initial
self.setWindowFlag(Qt.FramelessWindowHint) #取消边框
self.setAttribute(Qt.WA_TranslucentBackground)
self.setWindowOpacity(0.6)
radius = 30
self.centralwidget.setStyleSheet(
"""
background:rgb(255, 255, 0);
border-top-left-radius:{0}px;
border-bottom-left-radius:{0}px;
border-top-right-radius:{0}px;
border-bottom-right-radius:{0}px;
""".format(radius)
)
if __name__ == '__main__':
app = QApplication([])
window = MainWindow()
window.show()
sys.exit(app.exec_())