📜  PyQt5 QCalendarWidget – 去除面具(1)

📅  最后修改于: 2023-12-03 14:45:47.241000             🧑  作者: Mango

PyQt5 QCalendarWidget – 去除面具

当我们使用 PyQt5 中的 QCalendarWidget 部件时,往往会发现每一个日期都被遮盖了一层“面具”,有时候并不太适用于我们的需求。本文将介绍如何去除这个“面具”。

我们可以通过设置 QCalendarWidget 的 stylesheet 来去除面具。

calendar.setStyleSheet("QCalendarWidget QAbstractItemView \
{selection-background-color: palette(highlight); selection-color: palette(highlighted-text);}")

这里的 palette(highlight) 可以更改为你想要的颜色。

下面是一个完整的例子:

from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
import sys

class Window(QMainWindow):
    def __init__(self):
        super().__init__()

        # creating a QCalendarWidget object
        calendar = QCalendarWidget(self)

        # removing the mask
        calendar.setStyleSheet("QCalendarWidget QAbstractItemView \
        {selection-background-color: palette(highlight); selection-color: palette(highlighted-text);}")

        # setting cursor shape
        calendar.setCursor(Qt.PointingHandCursor)

        # setting border to the calendar
        calendar.setContentsMargins(0, 0, 0, 0)
        calendar.setFrameShape(QFrame.NoFrame)

        # setting calendar to the main window
        self.setCentralWidget(calendar)

        # setting window title
        self.setWindowTitle("PyQt5 QCalendarWidget")

        # setting window geometry
        self.setGeometry(100, 100, 400, 300)

        # showing the window
        self.show()

# create pyqt5 app
App = QApplication(sys.argv)

# create the instance of our Window
window = Window()

# start the app
sys.exit(App.exec())

输出:

无遮盖的QCalendarWidget

这里,我们通过使用 selection-background-colorselection-color 属性,去除了 QCalendarWidget 的面具。

希望通过本文,您能够更全面的了解如何去除 PyQt5 中 QCalendarWidget 的面具。