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)));
}
4

1 に答える 1

1

スロットを作成します。

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);
    }
}
于 2016-11-15T07:31:40.703 に答える