1.实现功能0-9的加减乘除
//Widget.h 创2个变量
QString a;
QStringList b;
//0-9实现如下
void Widget::on_pushButton_2_clicked()
{
a+="1";
ui->lineEdit->setText(a);
}
void Widget::on_pushButton_3_clicked()
{
a+="2";
ui->lineEdit->setText(a);
}
void Widget::on_pushButton_5_clicked()
{
a+="3";
ui->lineEdit->setText(a);
}
void Widget::on_pushButton_4_clicked()
{
a+="4";
ui->lineEdit->setText(a);
}
void Widget::on_pushButton_6_clicked()
{
a+="5";
ui->lineEdit->setText(a);
}
void Widget::on_pushButton_7_clicked()
{
a+="6";
ui->lineEdit->setText(a);
}
void Widget::on_pushButton_10_clicked()
{
a+="7";
ui->lineEdit->setText(a);
}
void Widget::on_pushButton_9_clicked()
{
a+="8";
ui->lineEdit->setText(a);
}
void Widget::on_pushButton_8_clicked()
{
a+="0";
ui->lineEdit->setText(a);
}
void Widget::on_pushButton_11_clicked()
{
a+="9";
ui->lineEdit->setText(a);
}
//按键名自动忽略
2.+/*-的实现
void Widget::on_pushButton_13_clicked()
{
b.insert(0,a);
a.clear();
ui->lineEdit->setText(a);
b.insert(1,"+");
}
void Widget::on_pushButton_15_clicked()
{
b.insert(0,a);
a.clear();
ui->lineEdit->setText(a);
b.insert(1,"-");
}
void Widget::on_pushButton_12_clicked()
{
b.insert(0,a);
a.clear();
b.insert(1,"*");
ui->lineEdit->setText(a);
}
void Widget::on_pushButton_14_clicked()
{
b.insert(0,a);
a.clear();
ui->lineEdit->setText(a);
b.insert(1,"/");
}
if(b.at(1)=="+"){
if(b.count()>=2){
b.insert(2,a);
double val=b.at(0).toDouble()+b.at(2).toDouble();
a=QString::number(val);
}
}
if(b.at(1)=="-"){
if(b.count()>=2){
b.insert(2,a);
double val=b.at(0).toDouble()-b.at(2).toDouble();
a=QString::number(val);
}
}
if(b.at(1)=="*"){
if(b.count()>=2){
b.insert(2,a);
double val=b.at(0).toDouble()*b.at(2).toDouble();
a=QString::number(val);
}
}
if(b.at(1)=="/"){
if(b.count()>=2){
b.insert(2,a);
double val=b.at(0).toDouble()/b.at(2).toDouble();
a=QString::number(val);
}
if(b.at(0)=="0"||b.at(2)=="0"){
qDebug()<<"除数不能为0";
QMessageBox::warning(this,"运算无效","除数不能为0",QMessageBox::Yes|QMessageBox::No);
a="";
b.clear();
}
}
QString c=b.at(0)+b.at(1)+b.at(2)+"=";
ui->lineEdit_2->setText(c);
ui->lineEdit->setText(a);
3.清除的实现
void Widget::on_pushButton_18_clicked()
{
a.clear();
b.clear();
ui->lineEdit->setText(a);
ui->lineEdit_2->setText("");
}
4.backspace的实现
void Widget::on_pushButton_19_clicked()
{
a.chop(1);
ui->lineEdit->setText(a);
}
5.字体对话框的实现
void Widget::on_pushButton_clicked()
{
bool isflag;
QFont font=QFontDialog::getFont(&isflag);
if(isflag){
ui->lineEdit->setFont(font);
ui->lineEdit_2->setFont(font);
}
}
6.颜色对话框的实现
void Widget::on_pushButton_20_clicked()
{
QColor color=QColorDialog::getColor(Qt::red);
if(color.isValid()){
ui->frame->setPalette(QPalette(color));
}
}
7.网站打开的实现
void Widget::on_pushButton_21_clicked()
{
QDesktopServices::openUrl(QUrl("www.baidu.com"));
}
8.图片导入的实现
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
a.clear();
b.clear();
ui->frame->setFrameShape(QFrame::Box);
ui->frame->setAutoFillBackground(true);
QPixmap pixmap("图片路径");
ui->label_3->setPixmap(pixmap);
ui->label_3->setScaledContents(true);
}
9.小数点的实现//存在bug
void Widget::on_pushButton_17_clicked()
{
a+=".";
ui->lineEdit->setText(a);
}
10.布局截图
11.运行截图