In this article we will see how we can set the layout to the QCalendarWidget. In order to do this we use setLayout method, if there already is a layout manager installed on the calendar, QWidget won’t let us install another. We must first delete or update the existing layout manager (returned by layout()) before we can call setLayout() with the new layout.
In order to do this we will use setLayout method with the QCalendarWidget object.
Syntax : calendar.setLayout(layout)
Argument : It takes QLayout object as argument
Return : It return None
Implementation Steps :
1. Create a main window
2. Create a calendar widget and set geometry to it
3. Get the layout of the calendar
4. Create a label and set its properties
5. Add this label to the layout using addWidget method
6. Set this layout back to the calendar
Below is the implementation
# 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 , 300 )
# setting cursor
self .calendar.setCursor(Qt.PointingHandCursor)
# getting the current lay out
layout = self .calendar.layout()
# creating a label
label = QLabel( "GeeksforGeeks" , self )
# setting alignment
label.setAlignment(Qt.AlignCenter)
# setting style sheet to the label
label.setStyleSheet( "QLabel"
"{"
"border : 1px solid darkgrey;"
"background : lightgrey;"
"}" )
# adding label to the layout
layout.addWidget(label)
# setting layout back to calendar
self .calendar.setLayout(layout)
# create pyqt5 app App = QApplication(sys.argv)
# create the instance of our Window window = Window()
# start the app sys.exit(App. exec ())
|
Output :