• 【原创】QT简单计算器


    代码

    //main.cpp
    
    #include "calculator_111.h"
    #include <QtWidgets/QApplication>
    
    int main(int argc, char *argv[])
    {
    QApplication a(argc, argv);
    Calculator_111 w;
    w.show();
    return a.exec();
    /* //QT creator 
    Calculator_111 win; 
    win.show();
    return a.exec(); */
    
    }
    //calculator_111.h
    
    #ifndef CALCULATOR_111_H
    #define CALCULATOR_111_H
    
    #include <QtWidgets/QMainWindow>
    #include "ui_calculator_111.h"IDB_BITMAP1
    
    class Calculator_111 : public QMainWindow
    {
    Q_OBJECT
    
    public:
    Calculator_111(QWidget *parent = 0);
    ~Calculator_111();
    
    private:
    Ui::Calculator_111Class ui; /*QTdesiner画的界面*/
    void open(); /**/
    QAction *openAction; /**/
    };
    
    #endif // CALCULATOR_111_H
    //calculator_111.cpp
    
    
    #include <QAction>
    #include <QMenuBar>
    #include <QMessageBox>
    #include <QStatusBar>
    #include <QToolBar> /**/
    
    #include "calculator_111.h"
    /*C++ 的继承的语法的一部分,说明 MainWindow 的构造函数之前需要调用父类 QMainWindow 的带有参数的构造函数。一般而言,子类应该调用父类的同参数构造函数,以便正确构造父类 */
    Calculator_111::Calculator_111(QWidget *parent)
    : QMainWindow(parent)
    {
    ui.setupUi(this); /* 来自QTdesigner */
    
    setWindowTitle(tr("Calculate Window"));
    
    //在MainWindow类中添加一个私有变量openAction
    
    openAction = new QAction(QIcon("logo111.png"), tr("&Open..."), this);//路径问题!!!
    //在堆上创建了openAction对象。在QAction构造函数,我们传入了一个图标、一个文本和 this 指针
    openAction->setShortcuts(QKeySequence::Open);
    openAction->setStatusTip(tr("Open an existing file"));
    /*setStatusTip()则实现了当用户鼠标滑过这个 action 时,会在主窗口下方的状态栏显示相应的提示。
    connect()函数,将这个QAction的triggered()信号与Calculator_111类的open()函数连接起来。
    当用户点击了QAction时,会自动触发MainWindow的open()函数*/
    connect(openAction, &QAction::triggered, this, &Calculator_111::open);
    QMenu *file = menuBar()->addMenu(tr("&File"));
    file->addAction(openAction);
    QToolBar *toolBar = addToolBar(tr("&File"));
    toolBar->addAction(openAction);
    statusBar() ;
    
    
    }
    
    Calculator_111::~Calculator_111()
    {
    
    }
    //在MainWindow类中添加了一个私有函数open()
    void Calculator_111::open()
    {
    QMessageBox::information(this,tr("Information"),tr("open"));
    }
  • 相关阅读:
    观察者模式
    饿汉单例模式 and 懒汉单例模式
    解决hash冲突之分离链接法
    bat处理文件
    使用json-org包实现POJO和json的转换
    并发修改异常(ConcurrentModificationException)
    封装特效记录--持续更新
    vue loading组件
    vue授权页面登陆之后返回之前的页面
    vue 路由权限
  • 原文地址:https://www.cnblogs.com/hhxxgdd/p/8525304.html
Copyright © 2020-2023  润新知