Neste artigo, veremos como podemos implementar o evento de liberação de chave para o QCalendarWidget. Para definir o evento de liberação de tecla, temos que substituir o método keyReleaseEvent, substituindo o evento de liberação de tecla, podemos adicionar funções ao calendário sempre que a tecla pressionada é liberada. Ao contrário do evento de pressionamento de tecla, o evento de liberação de tecla ocorre quando a tecla pressionada é liberada, podemos dizer que o primeiro evento de pressionamento de tecla ocorre e o evento de liberação ocorre

Etapas de implementação:
1. Crie uma janela principal
2. Crie um QCalendarWidget
3. Defina várias propriedades para o calendário
4. Substitua o keyReleaseEvent
5. Dentro do método de substituição, verifique se a tecla escape pressionada e oculte o calendário

Abaixo está a implementação

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__() 
        self.setWindowTitle("Python ") 
        self.setGeometry(100, 100, 650, 400) 
        self.UiComponents() 
        self.show() 
  
    
    def UiComponents(self): 
        self.calendar = QCalendarWidget(self) 
        self.calendar.setGeometry(50, 10, 400, 250) 
        self.calendar.setCursor(Qt.PointingHandCursor) 
  
  
    
    def keyReleaseEvent(self, e): 
        if e.key() == Qt.Key_Escape: 
      self.calendar.hide() 
            print("Escape key released Hide the calendar") 
  
  
App = QApplication(sys.argv) 
window = Window() 
sys.exit(App.exec()) 

Resultado :

Tecla Escape liberada Esconder o calendário