使用QT中的输入更改拨号幻灯片的值?

问题描述 投票:1回答:1

好吧,我有点坚持这个问题 - 我试图改变拨号滑块的值,我想用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)));
}
c++ qt qt5 qlineedit qslider
1个回答
0
投票

创建插槽:

private slots:    
    void MySlot(QString text);

在构造函数中连接textChanged()MySlot()

connect(lineedit, &QLineEdit::textChanged, this, &YourWidget::MySlot);

然后

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);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.