Qt сигналы и слоты. Слайдер и индикатор выполнения

Я тоже занимался этой проблемой и нашел очень простое решение (хотя и немного грязно-взломанное): поместите ComboBox под Button, чтобы он показывал стрелку вниз рядом с кнопкой.

Затем используйте SelectedIndexChanged для ComboBox, чтобы изменить поведение Button или сделать то, что вы хотите сделать немедленно.

0
задан O'Neil 27 February 2019 в 15:48
поделиться

2 ответа

Добро пожаловать на борт.

Я удивлен, что вы хотите сделать расчет внутри коннекта. Это не так, как это работает. Пожалуйста, добавьте слот (метод), например,

void slotSetValue(int input)
{
  ui-progressBar->setValue(100 - input);
}

и подключите, например, connect(ui->horizontalSlider,SIGNAL(valueChanged(int)), this,slotSetValue(int)));

. Может потребоваться точная настройка для вашего кода.

пс. Я рекомендую использовать Qt5-connects, которые проверяются во время компиляции.

0
ответ дан ΦXocę 웃 Пepeúpa ツ 27 February 2019 в 15:48
поделиться

Обычно вы делаете:

connect(ui->horizontalSlider, &QSlider::valueChanged, 
ui->horizontalSlider, &QSlider::setValue);

, но ваша логика неверна, потому что вы соединяете valueChanged с setValue , что приведет к сбою вашего приложения, так как произойдет переполнение ...

С другой стороны, подключение используется только для передачи сигналов и слотов, вы не можете выполнять математику в сигналах / функциях, связанных с этим, по крайней мере, не так ... вам понадобится лямбда или что-то подобное в середине

0
ответ дан ΦXocę 웃 Пepeúpa ツ 27 February 2019 в 15:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: