Qt 多功能计算器(⼆)——三⾓函数pushed
引⾔
本篇⽂章的内容是计算器的功能之⼀——三⾓函数。关于三⾓函数,我作为⼀个初中⽣,没有太多好解释的,这⾥附上⼀段上的解释。
在直⾓三⾓形中仅有锐⾓(⼤⼩在0到90度之间的⾓)三⾓函数的定义。给定⼀个锐⾓ ,可以做出⼀个直⾓三⾓形,使得其中的⼀个内⾓是 。设这个三⾓形中,的对边、邻边和斜边长度分别是,那么
的正弦是对边与斜边的⽐值:的余弦是对边与斜边的⽐值:的正切是对边与斜边的⽐值:的余切是对边与斜边的⽐值:的正割是对边与斜边的⽐值:的余割是对边与斜边的⽐值:
根据这段解释,我画出了界⾯的概念图。
然后,就有了界⾯的设计图和完整程序。
先在输⼊框中输⼊⼀个数字,然后按下相应按钮,输⼊框中就会显⽰对应的计算结果。
界⾯设计
关于怎么创建⼦界⾯,⽹上的教程很多,这⾥就不赘述了。
按照设计图摆放控件就可以,那个⽅格是Grid Layout,这⾥给⼀个控件表,也顺便写好头⽂件,绑定好槽函数
控件描述控件名称输⼊框inputText 输出框outputText sin按钮btnSin cos按钮btnCos tan按钮btnTan cot按钮btnCot sec按钮btnSec csc按钮
btnCsc
控件名称信号函数
槽函数
槽函数参数btnSin QPushButton::clicked()RtFunc::funcBtnPushed()QString “sin”btnCos
QPushButton::clicked()
RtFunc::funcBtnPushed()
QString “cos”
θθθa ,b ,h θsin θ=
h a θcos θ=h
b
θtan θ=b
a
θcot θ=a
b
θsec θ=b
h
θcsc θ=a
h
btnTan QPushButton::clicked()RtFunc::funcBtnPushed()QString “tan”
控件名称信号函数槽函数槽函数参数btnCot QPushButton::clicked()RtFunc::funcBtnPushed()QString “cot”
btnSec QPushButton::clicked()RtFunc::funcBtnPushed()QString “sec”
btnCsc QPushButton::clicked()RtFunc::funcBtnPushed()QString “csc”
actionRtFunc QAction::triggered()MainWindow::rtFuncBtnPushed()None
//rtfunc.h
void funcBtnPushed(QString func);
//rtfunc.cpp
connect(ui->btnSin,&QPushButton::clicked,this,[=]{RtFunc::funcBtnPushed("sin");});
connect(ui->btnCos,&QPushButton::clicked,this,[=]{RtFunc::funcBtnPushed("cos");});
connect(ui->btnTan,&QPushButton::clicked,this,[=]{RtFunc::funcBtnPushed("tan");});
connect(ui->btnCot,&QPushButton::clicked,this,[=]{RtFunc::funcBtnPushed("cot");});
connect(ui->btnSec,&QPushButton::clicked,this,[=]{RtFunc::funcBtnPushed("sec");});
connect(ui->btnCsc,&QPushButton::clicked,this,[=]{RtFunc::funcBtnPushed("csc");});
另外,还需要⼀个进⼊到这个界⾯的⼊⼝,我选择的是顶部菜单,为了添加后续的功能,我已经设计好了整个菜单。
本篇⽂章中使⽤的是菜单中的“三⾓函数”选项,名称是actionRtFunc。
//mainwindow.h
void rtFuncBtnPushed();
//mainwindow.cpp
connect(ui->actionRtFunc,&QAction::triggered,this,[=]{MainWindow::rtFuncBtnPushed();});
界⾯逻辑
rtFuncBtnPushed()函数
void MainWindow::rtFuncBtnPushed()
{
RtFunc *ui =new RtFunc();
ui->show();
}
这是菜单中“三⾓函数”选项的槽函数,点击后会显⽰三⾓函数计算界⾯。
funcBtnPushed()函数
void RtFunc::funcBtnPushed(QString func)
{
QString strNumber = ui->inputText->text();
double number = Double();
double result =0;
if(func =="sin"){
result =sin(number);
}
else if(func =="cos"){
result =cos(number);
}
else if(func =="tan"){
result =tan(number);
}
else if(func =="cot"){
result =pow(tan(number),-1);
}
else if(func =="sec"){
result =pow(cos(number),-1);
}
else if(func =="csc"){
result =pow(sin(number),-1);
}
else{
abort();
}
ui->outputText->setText(QString::number(result));
}
这是六个三⾓函数按钮的槽函数,在被调⽤时,会先获取输⼊框中的数字,然后根据传⼊参数的不同在输出框中显⽰不同的计算结果。
代码中的三⾓函数的来源是cmath库,其中没有cot、sec、csc
知识整理
界⾯的跳转
包含界⾯头⽂件
使⽤头⽂件中的类创建指针对象,不要传⼊⽗类
使⽤show()函数显⽰界⾯
界⾯可⾃由打开和关闭
界⾯转换代码⽰例
UiName *ui =new UiName();//UiName是界⾯的类名
ui->show();
使⽤show()函数可以以新窗⼝的形式显⽰另⼀个界⾯,多个界⾯可同时使⽤,⾃由关闭。
pow()函数
这个函数的来源是cmath库,功能是进⾏乘⽅运算,在程序中的作⽤是求倒数(-1次⽅)。
pow(number,power)
/
/number:乘⽅的底数
//power:乘⽅的次数
本篇⽂章因为界⾯简单,所以内容⽐较少,这⾥附上(会持续更新,直到系列⽂章完结)。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论