2014-02-25 225 views
0

Goodday,QT Creator QlineEdit

我对Qt很新,我对QlineEdit有问题。当我运行程序时,它向我展示了QSpinEdit而不是QLineEdit框。我需要在QLineEdit的输入3个值和计算的标志,这将在QMessageBox提示显示

#include <QtGui> 


int main (int argc, char* argv[]) { 
    QApplication app(argc, argv); 

    bool ok; 
    double answer, mark; 


    do { 

     mark = QInputDialog::getDouble(0, "MarkCalc", "Enter the assignment marks:", QLineEdit::Normal, ok); 

     double a1 = mark/100 * 20/100; 
     double a2 = mark/100 * 50/100; 
     double a3 = mark/100 * 30/100; 
     double ym = (a1 +a2 +a3) *20; 
     double em = 80 * ym; 
     QString rep = QString("Final Mark: %1").arg(em); 
     answer = QMessageBox::question(0, "Final Marks", rep,QMessageBox::Yes | QMessageBox::No); 
     } while (answer == QMessageBox::Yes); 
    return 0; 
} 

回答

1

其因对话框,你看,实现如下:

class QInputDialogSpinBox : public QSpinBox { 
Q_OBJECT 
public: 
    QInputDialogSpinBox(QWidget *parent) : QSpinBox(parent) { 
    connect(lineEdit(), SIGNAL(textChanged(QString)), this, SLOT(notifyTextChanged())); 
    connect(this, SIGNAL(editingFinished()), this, SLOT(notifyTextChanged())); 
    } 
... 
}; 

所以,如果你需要QLineEdit-基本对话框,你必须自己实现它。

+0

你在哪里看到他的代码中有'QInputDialogSpinBox'? QInputDialog :: getDouble实现中的 –

+0

。 – gooddocteur

+0

我迷路了。我没有看到我的代码中的QInputDialogSpinBox。你能否进一步解释一下。谢谢 – user1291092