pyqt5 将页面窗口改成圆角
时间: 2023-08-16 22:03:49 浏览: 385
要将 PyQt5 窗口设置为圆角,可以使用 QWidget 的 setMask() 方法。具体步骤如下:
1. 创建一个 QWidget 对象,作为窗口的主体。
2. 为 QWidget 对象设置样式表,使其边框为 0。
3. 创建一个 QRegion 对象,将其设置为圆形区域。
4. 调用 QWidget 的 setMask() 方法,将 QRegion 对象作为参数传入。
以下是一个示例代码片段,可供参考:
```
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QRegion, QPainter
from PyQt5.QtCore import Qt
class RoundedWidget(QWidget):
def __init__(self):
super().__init__()
self.setWindowFlags(Qt.FramelessWindowHint)
self.setAttribute(Qt.WA_TranslucentBackground)
self.setStyleSheet('QWidget{border-radius: 10px; background-color: white;}')
def paintEvent(self, event):
painter = QPainter(self)
painter.setRenderHint(QPainter.Antialiasing, True)
painter.setPen(Qt.NoPen)
painter.setBrush(Qt.white)
painter.drawRoundedRect(self.rect(), 10, 10)
if __name__ == '__main__':
app = QApplication([])
widget = RoundedWidget()
widget.resize(300, 300)
widget.show()
app.exec_()
```
在上面的示例中,我们创建了一个名为 RoundedWidget 的自定义 QWidget 类,这个类继承了 QWidget 类,并重写了其中的 paintEvent() 方法。在 paintEvent() 方法中,我们使用 QPainter 对象绘制了一个圆角矩形。
在 RoundedWidget 的构造函数中,我们设置了窗口的一些属性,例如边框为 0、背景透明等。同时,我们还为 QWidget 设置了样式表,使其边框为圆角。最后,我们创建了一个 RoundedWidget 对象,并将其显示在屏幕上。
注意:在使用 setMask() 方法时,需要确保窗口本身是有内容的,否则无法正常显示。因此,在上面的示例中,我们重写了 QWidget 的 paintEvent() 方法,并在其中绘制了一个圆角矩形。
阅读全文