📌  相关文章
📜  PyQt5 QCalendarWidget – 如果可能,访问每个孩子的区域

📅  最后修改于: 2022-05-13 01:54:22.256000             🧑  作者: Mango

PyQt5 QCalendarWidget – 如果可能,访问每个孩子的区域

在本文中,我们将了解如何获取 QCalendarWidget 的所有子项的区域。日历不仅仅是一个单一的小部件,它是许多较小的小部件的混合物,我们称之为日历的孩子。有很多子,例如表格视图,项目委托等,我们使用 children 方法来获取它的所有子项。区域是每个孩子所占据的区域。

注意:所有孩子都没有矩形,因为它们可以是布局。

下面是实现

Python3
# importing libraries
from PyQt5.QtWidgets import *
from PyQt5 import QtCore, QtGui
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import sys
 
 
class Window(QMainWindow):
 
    def __init__(self):
        super().__init__()
 
        # setting title
        self.setWindowTitle("Python ")
 
        # setting geometry
        self.setGeometry(100, 100, 650, 400)
 
        # calling method
        self.UiComponents()
 
        # showing all the widgets
        self.show()
 
    # method for components
    def UiComponents(self):
 
        # creating a QCalendarWidget object
        self.calendar = QCalendarWidget(self)
 
        # setting geometry to the calendar
        self.calendar.setGeometry(50, 10, 400, 250)
 
        # creating a label
        label = QLabel(self)
 
        # setting geometry
        label.setGeometry(50, 280, 420, 120)
 
        # making it multi line
        label.setWordWrap(True)
 
        # getting children
        children = self.calendar.children()
 
 
        value = []
        for i in children:
            try:
 
                try:
                    # getting children region
                    region = i.childrenRegion()
                except:
                    # getting visible region
                    region = i.visibleRegion()
 
                # adding it to list
                value.append(region)
 
            except:
                pass
 
        # setting text to the label
        label.setText("Regions : " + str(value))
 
 
 
# create pyqt5 app
App = QApplication(sys.argv)
 
# create the instance of our Window
window = Window()
 
 
# start the app
sys.exit(App.exec())


输出 :