2
我是學生,程序員,我想用一些Qt中提供的控件來控制我的用戶輸入。我想讓錯誤消息顯示用戶輸入的確切錯誤,所以我認爲使用switch語句是最好的。我對此可能不太正確,如果有更好的方法來做到這一點,我全都是耳朵!我的主要項目將獲得用戶輸入的分配,感覺應該有一個更簡單的方法。 Qt文檔使我相信QValidator的核心是枚舉數據類型。所以我雖然可以在switch語句中使用它,但它似乎並不是int。我不確定如何在不影響QValidator的預期便利的情況下提供一個int值來使其工作。QErrorMessage和QValidator
如何使這項工作或做不好任何信息將不勝感激。提前致謝。
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QValidator>
#include <QErrorMessage>
#include <QString>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->pushButtonValidate, SIGNAL(clicked()), this, SLOT(checkData()));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::checkData()
{
QValidator *doubleValidator = new QDoubleValidator();
switch(ui->lineEditValidate->setValidator(doubleValidator))
{
case 0:
QErrorMessage *error0 = new QErrorMessage(this);
error0->showMessage("The input is invalid");
break;
case 1:
QErrorMessage *error1 = new QErrorMessage(this);
error1->showMessage("The input is incomplete");
break;
case 2:
break;
default:
QErrorMessage *error = new QErrorMessage(this);
error->showMessage("No input");
}
}
我認爲你有挑釁讓我在這裏正確的軌道,但我得到一個交換機的編譯器問題: 沒有匹配函數調用QValidator :: validate(QString)const 候選人是: 虛擬QValidator ::國家QValidator ::驗證(QString的&,INT和)常量 它說,候選人需要兩個參數,並只設置一個。 我正在看這個,文件不清楚應該去這裏。有任何想法嗎?我不知道在驗證參數中還需要什麼。我在想父母或這個,但都不會在這個功能中工作。我得到相同的編譯錯誤。 – 2012-01-03 22:40:44
我編輯的聲明是更正確的。你真的需要學會依靠閱讀[Qt文檔](http://developer.qt.nokia.com/doc/qt-4.8/)來了解這些事情,才能真正理解發生了什麼 – Chris 2012-01-03 23:00:26
謝謝;你的權利,QT文件是我一直在努力的。它是一個艱難的進軍,但生病到達那裏。謝謝你的幫助! – 2012-01-04 00:04:53