C++ QT创建者QlineEdit
我对Qt非常陌生,我对C++ QT创建者QlineEdit,c++,qt,qlineedit,C++,Qt,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
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;
}
#包括
int main(int argc,char*argv[]){
QApplication应用程序(argc、argv);
布尔ok;
双重回答,马克;
做{
mark=QInputDialog::getDouble(0,“MarkCalc”,“输入赋值标记:”,QLineEdit::Normal,ok);
双a1=标记/100*20/100;
双a2=标记/100*50/100;
双a3=标记/100*30/100;
双ym=(a1+a2+a3)*20;
双em=80*ym;
QString rep=QString(“最终标记:%1”).arg(em);
答案=QMessageBox::问题(0,“最终分数”,代表,QMessageBox::是| QMessageBox::否);
}while(答案==QMessageBox::Yes);
返回0;
}
这是因为您看到的对话框的实现是:
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 base dialog,您必须自己实现它。在他的代码中您在哪里看到
QInputDialogSpinBox
?在QInputDialog::getDouble实现中。我迷路了。我在代码中没有看到对话框微调框。请你进一步解释一下好吗。谢谢。您的代码中有QInputDialog::getDouble方法。此方法创建QInputDialog对象并向其中添加QSpinBox小部件。如果需要QLineEdit,请尝试QInputDialog::getText()方法。