控制内联中的间隔以获得整数

时间:2013-01-31 13:31:19

标签: qt qlineedit

我有一个使用的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的数字时,它会出现一个警告对话窗口。

但它似乎不起作用。有谁可以帮助我?

1 个答案:

答案 0 :(得分:1)

您希望使用textChanged信号连接而不是编辑完成。

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