DateTimeEdit, TimeEdit stepBy - PullRequest
       17

DateTimeEdit, TimeEdit stepBy

0 голосов
/ 24 декабря 2018

Я искал решения, но не нашел их.Я хотел превратить его в QTimeEdit, нажимая стрелку вверх или вниз на минутах, и только те, шаг 10. Я хотел написать в таблице стилей.Я пробовал эти решения, но они не работают.

QTimeEdit::MinuteSection{
stepBy:10;
}

QTimeEdit QAbstractSpinBox{
stepEnabled: True;
}

QTimeEdit QAbstractSpinBox::MinuteSection {
stepEnabled: True;
stepBy:10;
}

Во всех случаях выше минут всегда вперед один, а не 10. Однако код не дает мне ошибок.из PyQt5 импорт QtCore, QtGui, QtWidgets

class timeEdit(QtWidgets.QTimeEdit):
    def stepBy(self, steps):
        if self.currentSection() == self.MinuteSection:
            steps=10


class MainWindow(QtWidgets.QWidget):
    def __init__(self):#FFFFFF
        super(MainWindow, self).__init__()
        self.resize(800, 480)
        self.setWindowTitle("MainWindow")
        self.setObjectName("MainWindow")
        self.timeEdit = QtWidgets.QTimeEdit(self)
        self.timeEdit.setGeometry(QtCore.QRect(330, 30, 200, 100))
        self.timeEdit.stepBy(1)
        self.timeEdit2 = QtWidgets.QTimeEdit(self)
        self.timeEdit2.setGeometry(QtCore.QRect(330, 230, 200, 100))


if __name__ == "__main__":
    import sys
    app =QtWidgets.QApplication(sys.argv)

    Window= MainWindow()
    Window.show()
    sys.exit(app.exec_())

if __name__ == "__main__":
    main()

1 Ответ

0 голосов
/ 24 декабря 2018

Таблицы стилей Qt служат только для визуальной части, они не обрабатывают логику, потому что она терпит неудачу.Решение состоит в том, чтобы переписать stepBy() метод QTimeEdit:

from PyQt5 import QtWidgets

class TimeEdit(QtWidgets.QTimeEdit):
    def stepBy(self, steps):
        if self.currentSection() == QtWidgets.QDateTimeEdit.MinuteSection:
            steps = 10
        super(TimeEdit, self).stepBy(steps)

if __name__ == '__main__':
    import sys
    app = QtWidgets.QApplication(sys.argv)
    w = TimeEdit()
    w.show()
    sys.exit(app.exec_())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...