您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 嵌入式QT图形界面设计考试题
11级3G嵌入式班:吕中旭嵌入式QT图形界面设计考试题一、设计一个类似于QQ登陆界面的程序,要求1)有用户名输入框、密码输入框2)有确认按钮、退出按钮3)当点击确认按钮时,检查密码和用户名是否匹配默认密码和用户名(默认Passwd:123456,UserName:ct),如果匹配登陆界面退出,否则弹出警告框。4)当点击退出按钮时,退出登陆界面。程序代码:“CSS2.cpp”#ifndefCSS2_H#defineCSS2_H#includeQDialog#includeQLabel#includeQPushButton#includeQLineEdit#includeQVBoxLayout#includeQHBoxLayout#includeQGridLayout#includeQMessageBoxclassLOGIN:publicQDialog//定义一个LOGIN(登录)的类{Q_OBJECTpublic:LOGIN(QWidget*parent=0);//公共成员QWidget指针parent默认值为0private://私有成员QLabel*userlabel;//用户名标签QLabel*passwordlabel;//用户密码标签QLineEdit*userlineedit;//用户名文本输入框QLineEdit*passwordlineedit;//用户密码文本输入框QPushButton*loginbutton;//定义登录按钮QPushButton*quitbutton;//定义退出按钮QVBoxLayout*VLlayout;//定义垂直布局管理器QGridLayout*GLlayout;//定义网状布局管理器QHBoxLayout*HLlayout;//定义水平布局管理器privateslots://定义私有槽voidlogin();//引用用户登陆函数voidquit();//引用用户退出函数};#endif//CSS2_H//用户登录函数css2.cpp#includecss2.hLOGIN::LOGIN(QWidget*parent):QDialog(parent)//将parent的参数传递过去{userlabel=newQLabel(username:);passwordlabel=newQLabel(passwd:);userlineedit=newQLineEdit;passwordlineedit=newQLineEdit;loginbutton=newQPushButton(login);quitbutton=newQPushButton(quit);VLlayout=newQVBoxLayout(this);GLlayout=newQGridLayout;HLlayout=newQHBoxLayout;GLlayout-addWidget(userlabel,0,0);GLlayout-addWidget(userlineedit,0,1);GLlayout-addWidget(passwordlabel,1,0);GLlayout-addWidget(passwordlineedit,1,1);HLlayout-addWidget(loginbutton);HLlayout-addWidget(quitbutton);VLlayout-addLayout(GLlayout);VLlayout-addLayout(HLlayout);setLayout(VLlayout);connect(loginbutton,SIGNAL(clicked()),this,SLOT(login()));connect(quitbutton,SIGNAL(clicked()),this,SLOT(quit()));}voidLOGIN::login()//用户登录{if((userlineedit-text()!=ct)||(passwordlineedit-text()!=123456))QMessageBox::warning(this,warning,usernameorpasswdiswrong!);elsethis-close();}voidLOGIN::quit()//用户退出{QMessageBox::StandardButtonmybutton;mybutton=QMessageBox::warning(this,warning,areyousuretoquitthelogin??,QMessageBox::Yes|QMessageBox::No);if(mybutton==QMessageBox::Yes)this-close();}//主函数main.cpp#includeQApplication#includecss2.hintmain(intargc,char*argv[]){QApplicationapp(argc,argv);LOGINlogining;logining.show();//显示登陆界面returnapp.exec();}效果截图:登陆界面:用户名正确,密码不正确:警告错误:密码和用户都正确:二、设计实现一个简单的计算器程序,要求1)能进行简单的+、-、*、/、1/x、sqart(开方)按键计算。2)能进行退格、清零按键操作3)能正确的显示结果,精度为0.01程序代码:BUTTON.cpp#ifndefBUTTON_H#defineBUTTON_H#includeQToolButtonclassButton:publicQToolButton//定义工具按钮类{Q_OBJECTpublic:Button(constQString&text,QWidget*parent=0);QSizesizeHint()const;};#endif//BUTTON_H#ifndefCALCULATOR_H//定义计算器#defineCALCULATOR_H#includeQDialog#includeQtDebug//QT_BEGIN_HEADERclassQLineEdit;QT_END_NAMESPACEclassButton;classCalculaor:publicQDialog{Q_OBJECTpublic:Calculaor(QWidget*parent=0);privateslots:voiddigitClicked();//数字按键0-9voidunaryOperatorClicked();//平方,求根号,倒数voidadditiveOperatorClicked();//“+”,“-”voidmultiplicativeOperatorClicked();//“*”,“/”voidequalClicked();//“=”voidpointClicked();//“·”voidchangeSignClicked();//“+/—”voidbackspaceClicked();//“Backpase”voidclear();//“Clear”voidclearAll();//“ClearAll”voidclearMemory();//“MC”voidreadMemory();//“MR”voidsetMemory();//“MS”voidaddToMemory();//“M+”private:Button*createButton(constQString&text,constchar*membur);//生成按键函数voidabortOperation();//运算错误boolcalculate(doublerightOperate,constQString&pendingOperator);//运算函数(加减乘除)doublesumInMemory;//MC,MR,MS,M+值保存doublesumSoFar;//加法和减法运算值保存doublefactorSoFar;//乘法和除法运算值保存QStringpendingAdditiveOpertaor;//加法和减法运算值号保存QStringpendingMultiplicativeOperator;//乘法和除法运算值号保存boolwaitingForOperand;//表示状态QLineEdit*display;//数字框显示enum{NumDigitButtons=10};Button*digitButtons[NumDigitButtons];//数字按键0-9};#endif//CALCULATOR_H//定义按钮函数#includeQtGui#includebutton.hButton::Button(constQString&text,QWidget*parent):QToolButton(parent){setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Preferred);setText(text);}QSizeButton::sizeHint()const{QSizesize=QToolButton::sizeHint();size.rheight()+=20;size.rwidth()=qMax(size.width(),size.height());returnsize;}#includeQTGui#includemath.h#includebutton.h#includecalculator.hCalculaor::Calculaor(QWidget*parent):QDialog(parent){sumInMemory=0.0;sumSoFar=0.0;factorSoFar=0.0;waitingForOperand=true;display=newQLineEdit(0);display-setReadOnly(true);display-setAlignment(Qt::AlignRight);display-setMaxLength(15);QFontfont=display-font();font.setPointSize(font.pointSize()+8);display-setFont(font);for(inti=0;iNumDigitButtons;i++){digitButtons[i]=createButton(QString::number(i),SLOT(digitClicked()));}Button*pointButton=createButton(tr(.),SLOT(pointClicked()));Button*changeSignButton=createButton(tr(\261),SLOT(changeSignClicked()));Button*backspaceButton=createButton(tr(Backspace),SLOT(backspaceClicked()));Button*clearButton=createButton(tr(clear),SLOT(clear()));Button*clearAllButton=createButton(tr(clearall),SLOT(clearAll()));Button*clearMemoryButton=createButton(tr(MC),SLOT(clearMemory()));Button*readMemoryButton=createButton(tr(MR),SLOT(readMemory()));Button*setMemoryButton=createButton(tr(MS),SLOT(setMemory()));Button*addToMemoryButton=createButto
本文标题:嵌入式QT图形界面设计考试题
链接地址:https://www.777doc.com/doc-2517828 .html