• 《面向对象程序设计》c++第六次作业___calculator SE


    c++第五次作业 Calculator SE


    代码

    PS:这次作业延迟了很久,人要是迷茫啊…………唉~~~~~~

    新增GUI界面,使用Qt creator编写,纯代码生成控件、写坐标。

    感觉Qt creator非常的舒适,一开始尝试了MFC,但是觉得整个机制比较难懂,而且看网上的评价觉得MFC在被淘汰的边缘,所以毅然决然跳坑选择了Qt,但是静态编译是个大麻烦,不过最后竟然没传成功……早知道写完就传代码了。(安利:最近有WWDC,果粉可以去看看)

    使用方法:

    • open、close按钮可以开关文件路径、提交按钮,使用电脑键盘键入时建议关闭路径;
    • 各种操作按键包括“+”、“-”、“*”、“/”、“^(乘方)”、“.(小数点)”、“( )”、“ESC(清除)”、“BackSpace(回格)”;
    • 支持键盘输入、软键盘输入;
    • 每次运算结束表达式自动清除;

    界面图片:

    MainWindow.h

    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
    
    #include <QMainWindow>//界面窗口头文件
    #include <qpushbutton.h>//按键头文件
    #include <qlabel.h>//标签头文件
    #include <qlineedit.h>//单行文本输入框头文件
    #include <QKeyEvent>//键盘输入头文件
    using namespace std;
    
    namespace Ui {
    class MainWindow;
    }
    
    class MainWindow : public QMainWindow
    {
        Q_OBJECT
    
    public:
        explicit MainWindow(QWidget *parent = 0);
        ~MainWindow();
    
    signals:
        void numberEmitted(int number);
    
    private slots:
        void clear(); 
    //ESC的清除表达式操作
    
        void equals(); 
    //输入等号的操作
    
    
        void buttonPushed(); 
    //输入数字的操作
    
        void operationPushed(); 
    //输入符号的操作
    
        void setGeo();
    //界面生成时规划空间几何位置的操作
    
        void submitPath();
    //输入路径后的提交操作
    
        void fileOperation(const char *i,const char *o); 
    //文件处理操作
    
        void keyPressEvent(QKeyEvent *e);                  
    //键盘输入操作
    
        void addNumber(QString num);                        
    //软键盘键入或键盘键入后的添加数字操作
    
        void addOpe(QString ope);                               
    //软键盘键入或键盘键入后的添加操作符操作
    
        void getResult();                                              
    //按下等号后开始计算的操作
    
        void fileOpeAppear();                                      
    //打开路径文本条操作
    
        void fileOpeDisappear();                                  
    //关闭路径文本条操作
    
        void BackSpace();                                           
    //回格操作
    
    private:
        QLabel *title;
        QLabel *label;
        QPushButton *submitButton;
        QPushButton *operationButton[10];
        QPushButton *buttons[10];
        QLineEdit *inputPath;
        QLineEdit *outputPath;
        QPushButton *filePath;
        QPushButton *hideFilePath;
        QPushButton *backspace;
    
    };
    
    #endif // MAINWINDOW_H
    
    
    

    (此处不贴具体MainWindow.cpp里的操作,有兴趣的同学移步github)

  • 相关阅读:
    分布式锁原理及实现方式
    【FAQ】Maven 本地仓库明明有jar包,pom文件还是报错解决办法
    【FAQ】tomcat启动jdk版本不一致
    【Map,HashMap,Vector,List】资料汇总
    【FAQ】调用接口序列化问题
    【docker】docker下安装mysql
    linux tcpdump抓包Post请求
    Springboot 在@Configuration注解的勒种 使用@Autowired或者@value注解 读取.yml属性失败
    Springboot使用Shiro-整合Redis作为缓存 解决定时刷新问题
    CentOS yum 安装nginx
  • 原文地址:https://www.cnblogs.com/vayhang-E-airshiner/p/5586865.html
Copyright © 2020-2023  润新知