conversion.h

来自「嵌入式Qt下的一个计算器源码」· C头文件 代码 · 共 126 行

H
126
字号
/******************************************************************************** Copyright (C) 2000-2006 TROLLTECH ASA. All rights reserved.**** This file is part of the Phone Edition of the Qtopia Toolkit.**** Licensees holding a valid license agreement from Trolltech or any of its** authorized distributors may use this file in accordance with** the License Agreement provided with the Licensed Software.**** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for**   information about Trolltech's Commercial License Agreements.**** Contact info@trolltech.com if any conditions of this licensing are** not clear to you.********** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.******************************************************************************/#ifdef ENABLE_CONVERSION#ifndef CONVERSIONIMPL_H#define CONVERSIONIMPL_H#include "../engine.h"#include "../doubleinstruction.h"#include "stdinputwidgets.h"#include <QPushButton>#include <QStackedWidget>#include <QComboBox>extern Engine *systemEngine;class UnitConversionInstruction : public BaseDoubleInstruction {public:    UnitConversionInstruction():BaseDoubleInstruction(){	name = "UnitConversion";	retType = type = "Double";	argCount = 1;	precedence = 0;    };    ~UnitConversionInstruction(){};   void doEvalI(DoubleData *acc) {	DoubleData *result = new DoubleData();	if (tempFrom != 'n' && tempTo != 'n') {	    double tmp = acc->get();	    if (tempFrom == 'k')		tmp -= 273;	    if (tempFrom == 'f')		tmp = (tmp - 32) * 5 / 9;	    if (tempTo == 'k')		tmp += 273;	    if (tempTo == 'f')		tmp = tmp / 5 * 9 + 32;	    result->set(tmp);	} else {	    result->set(acc->get() * to / from);	}	systemEngine->putData(result);    };    static double from;    static double to;    static char tempFrom;    static char tempTo;};struct conversionData {    QString name;    double factor;    QPushButton *button;};struct conversionMode {    QString name;    QList<conversionData*> *dataList;    conversionData *defaultType;};class FormConversion:public DecimalInputWidget {    Q_OBJECTpublic:    FormConversion(QWidget * parent = 0);    ~FormConversion();        QString interfaceName() { return QString(tr("Conversion")); };public slots:    void celciusButtonClicked ();    void fahrenheitButtonClicked ();    void kelvinButtonClicked ();    protected:    void showEvent ( QShowEvent * );    void init(int fromRow, int fromCol);    private:    QPushButton *PBC;    QList<conversionMode*> *modeList;    QComboBox *typeSelector;    QStackedWidget *conversionStack;    double currentFactor, newFactor;    QPushButton *currentButton, *newButton;    void doConversion();public slots:    void selectType(int);    void conversionButtonClicked();private slots:    void CClicked();};#endif //CONVERSIONIMPL_H#endif //ENABLE_CONVERSION

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?