Увеличение стрелок календаря Qt

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

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

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

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

    cal = QtGui.QCalendarWidget(self)

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

htt ps:https://stackru.com/images/8baa421a3bf65a6769a36a0d71ccd7e3506fb5e9.png

1 ответ

Решение

Одним из возможных решений является установка 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_())
Другие вопросы по тегам