📅  最后修改于: 2023-12-03 15:18:50.148000             🧑  作者: Mango
PyQt5是一个广泛使用的Python GUI框架,它允许开发者创建高效和美观的桌面应用程序。其中,MainWindow是一个常见的窗口控件。这篇文章将会介绍如何在PyQt5中更改MainWindow的边框样式。
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.QtCore import Qt
class MyMainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowFlags(Qt.FramelessWindowHint)
需要注意的是,以上代码中的Qt.FramelessWindowHint参数会禁用窗口的默认边框。如果需要自定义边框,需要进一步设置窗口的样式。
def paintEvent(self, event):
self._painter = QPainter(self)
self._painter.setPen(QColor(0, 0, 0))
self._painter.fillRect(QRect(self.rect().x() + 10, self.rect().y() + 10, self.rect().width() - 20, self.rect().height() - 20), QColor(255, 255, 255))
以上代码中的paintEvent()函数会在窗口被绘制时被自动调用。我们需要在这个函数中绘制边框。在这个例子中,我们绘制了一个白色的矩形,剩下的黑色区域将会被当做边框。
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPainter, QColor, QBrush, QPen
from PyQt5.QtCore import QRect
class MyMainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowFlags(Qt.FramelessWindowHint)
def paintEvent(self, event):
self._painter = QPainter(self)
self._painter.setPen(QColor(0, 0, 0))
self._painter.fillRect(QRect(self.rect().x() + 10, self.rect().y() + 10, self.rect().width() - 20, self.rect().height() - 20), QColor(255, 255, 255))
if __name__ == '__main__':
app = QApplication([])
window = MyMainWindow()
window.show()
app.exec_()
这个例子演示了如何在PyQt5中更改MainWindow的边框样式。我们在窗口上绘制了一个自定义的边框,这个边框可以被进一步优化或修改以适应不同的项目需求。