Qt QSpinBox ускоренный размер шага - PullRequest
2 голосов
/ 12 июня 2019

У меня есть QSpinBox в Qt.Виджет поставляется с одной стрелкой увеличения и одной стрелкой.Нажатие на стрелку увеличивает значение, определяемое singleStep, в то время как нажатие и удерживание стрелки увеличивает значение на singleStep каждые X миллисекунд (в зависимости от настроек системы).

Каков наилучший способ реализацииопыт, когда нажатие и удержание будет увеличивать / уменьшать значение быстрее с течением времени.Я имею в виду либо

  • Начните с singleStep с приращениями в течение первых 2 секунд, затем с шагом 2 * singleStep, затем 4 * singleStep, пока не отпустите

  • Увеличение на singleStep каждые X миллисекунд, затем после первых 2 секунд удерживания стрелки нажатой, увеличение на singleStep каждые X / 2 миллисекунды и т. Д.

В зависимости от того, что проще.

1 Ответ

3 голосов
/ 12 июня 2019

В качестве первого предложения вы должны попробовать встроенную функциональность QSpinBox.

#include <QSpinBox>
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    auto w=new QSpinBox;
    w->setAccelerated(true);
    w->show();

    return a.exec();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...