我有一个使用的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的数字时,它会出现一个警告对话窗口。
但它似乎不起作用。有谁可以帮助我?
答案 0 :(得分:1)
您希望使用textChanged信号连接而不是编辑完成。
LE:我也不记得验证器有问题,所以你能不能提供更多细节,比如Qt版本,Os版本,编译器,也许可以看看问题是否在一个示例项目中重现。