【原创】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"));
}
原文地址:https://www.cnblogs.com/hhxxgdd/p/8525304.html