当前位置: 首页 > news >正文

大兴专业网站开发公司湖南省造价管理站官网

大兴专业网站开发公司,湖南省造价管理站官网,wordpress模板教程视频,北京网约车目录 1 搭建标准界面2、 逻辑编写2.1 初始化 github链接#xff1a;基于qt的计算器 更多内容可以点击这里查看个人博客#xff1a;个人博客 1 搭建标准界面 按照下图搭设界面 修改样式让这计算器看起来更像一点#xff0c;同时对按钮分组进行样式编辑#xff0c;添加字符… 目录 1 搭建标准界面2、 逻辑编写2.1 初始化 github链接基于qt的计算器 更多内容可以点击这里查看个人博客个人博客 1 搭建标准界面 按照下图搭设界面 修改样式让这计算器看起来更像一点同时对按钮分组进行样式编辑添加字符串name,为number其他按键为other。之前的文章里出现过好几次不在赘述 修改最大的样式表 * { border:none; background-color: rgb(243, 243, 243); } /* */ QPushButton { font: bold 12pt 微软雅黑; } QPushButton[name number] { border-radius:4px; background-color: rgb(252, 252, 252); } QPushButton[name other] { border-radius:4px; background-color: rgb(246, 246, 246); } /*增加鼠标悬浮背景色 */ QPushButton[name number]:hover { border:1px solid rgb(193,193,193); background-color: rgb(221, 223, 221); } QPushButton[name other]:hover { border:1px solid rgb(193,193,193); background-color: rgb(221, 223, 221); } 接着修改文字输入部分让他们文字全部右对齐打开readonly光标就不会闪烁 2、 逻辑编写 2.1 初始化 首先初始化获得所有的按钮放入组方便后续操作在自己写个槽函数用于处理点击的流程 void cell_Standui::initUI() {//1、把所有的按钮放到一个按钮组里边QButtonGroup * buttonGroup new QButtonGroup(this);auto btnList findChildrenQPushButton*();for(auto btn : btnList){buttonGroup-addButton(btn);}//2、关联按钮组的点击信号connect(buttonGroup,QButtonGroup::buttonClicked,this,cell_Standui::onButtonGroupClicked);vec.resize(5);}显示数字记录比较简单难点在于各种符号的切换以及过程和最终结果的显示在一开始输入时需要清除0按完号后在次输入要清空记录使用容器记录存着的数和操作过程根号和平方等只有一个运算数单独写使用一个prebtn来记录上一个按键若是一次计算完成则清空 #include cell_standui.h #include ui_cell_standui.hcell_Standui::cell_Standui(QWidget *parent): QMainWindow(parent), ui(new Ui::cell_Standui) {ui-setupUi(this);initUI(); }cell_Standui::~cell_Standui() {delete ui; }void cell_Standui::initUI() {//1、把所有的按钮放到一个按钮组里边QButtonGroup * buttonGroup new QButtonGroup(this);auto btnList findChildrenQPushButton*();for(auto btn : btnList){buttonGroup-addButton(btn);}//2、关联按钮组的点击信号connect(buttonGroup,QButtonGroup::buttonClicked,this,cell_Standui::onButtonGroupClicked);vec.resize(5); }void cell_Standui::onButtonGroupClicked(QAbstractButton *btn) {//获取按钮的名称// qDebug()btn-objectName();//首先把框里的数赋值auto val1 ui-le_result-text().toFloat();QStringList nameList btn-objectName().split(_);QString name nameList[1];if(name 0 name 9 || name point ){//把一开始的0清除if(name ! point ui-le_result-text() 0){ui-le_result-clear();}//如果点击数字键的时候输入框有数据而且表达式框只有两个数据则重置为刚刚输入的if(preBtn add || preBtn multiplication ||preBtn subtraction || preBtn divide){ui-le_result-clear();}else if(preBtn result || preBtn squareroot || preBtn square || preBtn quarter){//判断上次的按钮是不是如果是那么一次计算就算完成了清空所有内容ui-le_result-clear();ui-le_history-clear();vec.clear();vec.resize(5);}//输入数字ui-le_result-insert(btn-text());}else if(name ce){//清空ui-le_result-clear();}else if(name c){//清空ui-le_result-clear();ui-le_history-clear();vec.clear();vec.resize(5);}else if(name del){//删除//先让光标的位置移动到前一位ui-le_result-setCursorPosition(ui-le_result-cursorPosition()-1);ui-le_result-del();}//输入符号else if(name add){if(vec.size() ! 2){//把左操作数和运算符保存起来vec[0] val1;vec[1] ;}}else if(name subtraction){if(vec.size() ! 2){//把左操作数和运算符保存起来vec[0] val1;vec[1] -;}}else if(name multiplication){if(vec.size() ! 2){//把左操作数和运算符保存起来vec[0] val1;vec[1] ×;}}else if(name divide){if(vec.size() ! 2){//把左操作数和运算符保存起来vec[0] val1;vec[1] ÷;}}else if(name result){vec[2] val1;vec[3] ;if(vec[1] ){vec[4] vec[0].toFloat()vec[2].toFloat();}else if(vec[1] -){vec[4] vec[0].toFloat()-vec[2].toFloat();}else if(vec[1] ×){vec[4] vec[0].toFloat()*vec[2].toFloat();}else if(vec[1] ÷){vec[4] vec[0].toFloat()/vec[2].toFloat();}ui-le_result-clear();ui-le_result-setText(vec[4].toString());}else if(name squareroot){//把左操作数和运算符保存起来vec[0] √ ;vec[1] val1;vec[2] ;vec[3] sqrt(val1);ui-le_result-clear();ui-le_result-setText(vec[3].toString());}else if(name square){//把左操作数和运算符保存起来vec[0] val1;vec[1] ²;vec[2] ;vec[3] val1*val1;ui-le_result-clear();ui-le_result-setText(vec[3].toString());}else if(name quarter){//把左操作数和运算符保存起来vec[0] 1/;vec[1] val1;vec[2] ;vec[3] 1/val1;ui-le_result-clear();ui-le_result-setText(vec[3].toString());}else if(name mod){//把左操作数和运算符保存起来vec[0] val1;vec[1] %;vec[2] ;vec[3] val1/100;ui-le_result-clear();ui-le_result-setText(vec[3].toString());}//显示表达式每次都清空重新显示ui-le_history-clear();for(auto var : vec){ui-le_history-insert(var.toString());}preBtn name; } 头文件 #ifndef CELL_STANDUI_H #define CELL_STANDUI_H#include QMainWindow #include QButtonGroup #include QDebug #include QVector #include QVariantnamespace Ui { class cell_Standui; }class cell_Standui : public QMainWindow {Q_OBJECTpublic:explicit cell_Standui(QWidget *parent nullptr);~cell_Standui();void initUI();public slots:void onButtonGroupClicked(QAbstractButton* btn);private:Ui::cell_Standui *ui;QVectorQVariant vec;//记录上一个按钮的名字QString preBtn; };#endif // CELL_STANDUI_H成果图
http://www.hkea.cn/news/14488727/

相关文章:

  • 做网站怎么去工信部缴费挂机软件定制
  • 用html5做手机网站网站备案如何转移
  • 做网站网站的人是怎么被抓的社交网站开发技术岗
  • 建站一条龙邯郸个人网站建设
  • 婚纱影楼网站模板wordpress内存耗尽
  • 四川餐饮网站建设建筑行业网站有哪些
  • 网站 js 广告代码大全wordpress微软雅黑字体
  • 网站产品预算网页游戏排行榜人气
  • 上海松江网站建设公司中国网站排名查询
  • php网站前后台源代码dw建设网站如何加入音乐
  • 自动建站网站系统域名电商网站建设模型图
  • 四视图网站埃及网站后缀
  • 网站内容如何优化上海建站模板系统
  • python 做的网站有哪些最吸引人的营销广告文案
  • 做多个网站 买vps国企网站建设需要注意什么
  • 网站开发工程师证贵阳网站开发工程师招聘网
  • 成都网站建设交易wordpress s
  • 广州网站建设流程图泉州网站优化排名推广
  • 如何防止php网站被挂马浙江金华市建设局网站
  • 个人网站转为企业网站百度链接插件 wordpress
  • 外贸建站哪家公司专业网络投票怎么做
  • 金属材料东莞网站建设网站维护主要需要会什么
  • 中小企业网站建设示范平台手机app推广平台
  • 陕西省煤炭建设公司第一中学官方网站沪尚茗居装修价格怎样
  • 深圳极速网站建设费用wordpress 块状
  • 大连建设厅网站网站建设的四大要素
  • app介绍网站模板免费下载画册设计网站
  • 七七网站建设企业邮箱怎么改密码
  • 石景山老山网站建设清远网站设计公司
  • 自己做的网站注册用户无法收到激活邮箱的邮件国家企业信用公示信息系统入口