0

我有一个我使用的 lineEdit,因此用户可以输入频率间隔,

// Making the lineedit objects only accept numbers and align it leftside
ui->frequency->setValidator(new QIntValidator(36, 1000, this));
ui->frequency->setAlignment(Qt::AlignRight);

它可以正常工作到上限 1000,但下限不能。所以我创建了一个插槽来控制它,

// Control freqeuncy interval
void gui::f_interval()
{
    QString f = ui->frequency->text();
    freq = f.toInt();

    if (freq < 36)
    {
        int status = QMessageBox::warning(this,"Warning","Invalid frequency interval",QMessageBox::Ok);
    }
}

并将其连接到 lineEdit 的信号,

// Control frequency interval
connect(ui->frequency, SIGNAL(editingFinished()), this, SLOT(f_interval()));

这样当用户输入一个低于 36 的数字时,它会收到一个警告对话框窗口。

但这似乎不起作用。谁能帮我?

4

1 回答 1

1

您想连接textChanged信号而不是 editingFinished。

LE:我也不记得验证器有问题,所以你能提供更多细节,比如 Qt 版本、Os 版本、编译器,也许看看这个问题是否在示例项目中重现。

于 2013-01-31T13:38:50.290 回答