Меняется ли значение слайда циферблата со входом в QT?

Ну, я как-то застрял в этой проблеме — я пытаюсь изменить значение ползунка набора, и я хочу изменить его, используя ввод с полем ввода QLineEdit, и до сих пор я не смог найти ничего, что могло бы мне помочь интернет.

Заранее спасибо!


Если вам нужна дополнительная информация, не стесняйтесь спрашивать!

Кодовый фрагмент

void MainWindow::on_lineEditGain_textChanged(const QString &arg1)
{
QString getVal=ui->lineEditGain->text();
// qint16 intVal = getVal.split(" ")[0].toInt();
connect(getVal, SIGNAL(textChanged(QString)), this, SLOT(setValue(QString)));
}

0

Решение

создать слоты:

private slots:
void MySlot(QString text);

В конструкторе соединяем textChanged () с MySlot ():

connect(lineedit, SIGNAL(textChanged(QString)), this, SLOT(MySlot(QString)));

а потом

void YourWidget::MySlot(QString text)
{
QRegExp re("\\d*");  // a digit (\d), zero or more times (*)
if (re.exactMatch(text)){
int value = text.toInt();
if(value >= -127 && value<=127)
slider->setValue(value);
}
}

Вы также можете разместить QValidator

lineedit->setValidator( new QIntValidator(-127, 127, this) );

В твоем случае:

void MainWindow::on_lineEditGain_textChanged(const QString &arg1)
{
QRegExp re("\\d*");  // a digit (\d), zero or more times (*)
if (re.exactMatch(arg1)){
int value = arg1.toInt();
if(value >= -127 && value<=127)
ui->slider->setValue(value);
}
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]