PyQt5 QCalendarWidget 设置焦点代理
在这篇文章中,我们将看到如何为QCalendarWidget设置焦点代理。焦点代理是间接地设置焦点到日历上,即通过设置焦点到它的孩子身上。例如,一些部件可以 “拥有焦点”,但是创建一个子部件,比如QLineEdit,来实际处理焦点。在这种情况下,小组件可以将行编辑设置为其焦点代理。默认情况下,日历的QTableView有焦点代理。
为了做到这一点,我们将使用QCalendarWidget对象的setFocusProxy方法。
语法: calendar.setFocusProxy(child)
参数: 它需要QWidget类型的对象作为参数
返回: 它返回无。
下面是实现的过程
# 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) # setting cursor self.calendar.setCursor(Qt.PointingHandCursor) # getting child child = self.calendar.children()[3] # setting focus proxy self.calendar.setFocusProxy(child) # create pyqt5 app App = QApplication(sys.argv) # create the instance of our Window window = Window() # start the app sys.exit(App.exec())
版权声明:本页面内容旨在传播知识,为用户自行发布,若有侵权等问题请及时与本网联系,我们将第一时间处理。E-mail:284563525@qq.com