使用 QT 中的输入更改拨号滑块的值?
Changing the value of a dial slide with an input in 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)));
}
创建插槽:
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);
}
}
嗯,我有点卡在这个问题上 - 我正在尝试更改拨号滑块的值,我想使用带有 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)));
}
创建插槽:
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);
}
}