2013-01-31 25 views
0

我有一個lineEdit我使用,使用戶可以輸入一個頻率間隔,contoling的間隔在linedit爲整數

// 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,但較低的DOS不行。所以我創建了一個槽,以控制它,

// 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

您想連接textChanged信號而不是編輯已完成。 LE:我也不記得有驗證器的問題,所以你可以提供更多的細節,如Qt版本,Os版本,編譯器,也許看看問題是否在示例項目中複製。

+0

如果我使用textChanged它不會產生我想要的效果。 – SamuelNLP

+0

想象我想要300.如果我把300的第3個,它會告訴我警告對話框,因爲3低於36 – SamuelNLP

+0

QT 4.8.1,Ubuntu 12.04 LTS x86 – SamuelNLP