Я тоже занимался этой проблемой и нашел очень простое решение (хотя и немного грязно-взломанное): поместите ComboBox
под Button
, чтобы он показывал стрелку вниз рядом с кнопкой.
Затем используйте SelectedIndexChanged
для ComboBox
, чтобы изменить поведение Button
или сделать то, что вы хотите сделать немедленно.
Добро пожаловать на борт.
Я удивлен, что вы хотите сделать расчет внутри коннекта. Это не так, как это работает. Пожалуйста, добавьте слот (метод), например,
void slotSetValue(int input)
{
ui-progressBar->setValue(100 - input);
}
и подключите, например, connect(ui->horizontalSlider,SIGNAL(valueChanged(int)), this,slotSetValue(int)));
. Может потребоваться точная настройка для вашего кода.
пс. Я рекомендую использовать Qt5-connects, которые проверяются во время компиляции.
Обычно вы делаете:
connect(ui->horizontalSlider, &QSlider::valueChanged,
ui->horizontalSlider, &QSlider::setValue);
, но ваша логика неверна, потому что вы соединяете valueChanged с setValue , что приведет к сбою вашего приложения, так как произойдет переполнение ...
С другой стороны, подключение используется только для передачи сигналов и слотов, вы не можете выполнять математику в сигналах / функциях, связанных с этим, по крайней мере, не так ... вам понадобится лямбда или что-то подобное в середине