使qt日历箭头变大

making qt calendar arrows larger

我使用 QCalendarWidget 创建日历。

我把日历和它的字体变大了,但我不知道如何把日历的箭头也变大。 箭头,我指的是顶部的绿色箭头,可以让你来回移动。

我正在使用 python 2.7,并使用 PyQt4。

使用 QCalendarWidget 创建日历 -

    cal = QtGui.QCalendarWidget(self)

图像:您可以看到箭头与日历的大小不成比例。

一种可能的解决方案是使用 Qt 样式设置 iconSize qproperty Sheet:

from PyQt4 import QtGui

if __name__ == "__main__":
    import sys

    app = QtGui.QApplication(sys.argv)

    cal = QtGui.QCalendarWidget()
    fn = cal.font()
    fn.setPointSize(20)
    cal.setFont(fn)

    cal.setStyleSheet("""
        #qt_calendar_prevmonth, #qt_calendar_nextmonth{
            qproperty-iconSize: 40px
        }
    """
    )

    cal.resize(640, 480)
    cal.show()
    sys.exit(app.exec_())

另一种可能的解决方案是使用 findChild 访问每个按钮并设置图标大小:

from PyQt4 import QtCore, QtGui

if __name__ == "__main__":
    import sys

    app = QtGui.QApplication(sys.argv)

    cal = QtGui.QCalendarWidget()
    fn = cal.font()
    fn.setPointSize(20)
    cal.setFont(fn)

    prev_button = cal.findChild(QtGui.QToolButton, "qt_calendar_prevmonth")
    next_button = cal.findChild(QtGui.QToolButton, "qt_calendar_nextmonth")
    for btn in (prev_button, next_button):
        btn.setIconSize(QtCore.QSize(40, 40))

    cal.resize(640, 480)
    cal.show()
    sys.exit(app.exec_())