увеличение стрелок календаря Qt - PullRequest
2 голосов
/ 21 мая 2019

Я использую QCalendarWidget для создания календаря.

Я увеличил календарь и его шрифт, но не знаю, как увеличить стрелки календаря.Под стрелками я подразумеваю зеленые наверху, которые позволят вам идти вперед и назад.

Я работаю с Python 2.7 и использую PyQt4.

создание календаря с помощью QCalendarWidget -

    cal = QtGui.QCalendarWidget(self)

ИЗОБРАЖЕНИЕ: Вы можете видеть, что стрелки не пропорциональны размеру календаря.

enter image description here

1 Ответ

2 голосов
/ 21 мая 2019

Одним из возможных решений является установка iconSize qproperty с помощью таблицы стилей Qt:

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 и установка iconSize:

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_())
...