⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 advanced.cpp

📁 Trolltech公司发布的图形界面操作系统。可在qt-embedded-2.3.7平台上编译为嵌入式图形界面操作系统。
💻 CPP
字号:
/************************************************************************ Copyright (C) 2002 Trolltech AS.  All rights reserved.**** This file is part of Qtopia Environment.**** This file may be distributed and/or modified under the terms of the** GNU General Public License version 2 as published by the Free Software** Foundation and appearing in the file LICENSE.GPL included in the** packaging of this file.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.**** See http://www.trolltech.com/gpl/ for GPL licensing information.**** Contact info@trolltech.com if any conditions of this licensing are** not clear to you.************************************************************************/#include "advanced.h"#include <qtopia/calc/doubleinstruction.h>#include <qlayout.h>#include <qpixmap.h>#include <qpainter.h>#include <qtopia/resource.h>void FormAdvanced::fontChange() {    updatePictures();    update();    updateGeometry();}void FormAdvanced::updatePictures() {    QFont big(font());    if(big.pointSize() <= 1)	big.setPointSize(12);	// Correct for scaleable fonts.    QColor bg = PBMPlus->backgroundColor();    int fontSize = big.pixelSize();    int fontSize05 = fontSize / 2;    int fontSize10 = fontSize;    int fontSize15 = fontSize + fontSize05;    int fontSize20 = fontSize * 2;    int fontSize25 = fontSize20 + fontSize05;    int pixSize = fontSize25;    PMPow = new QPixmap(pixSize,pixSize);    PMPow->fill(bg);    QPainter p(PMPow);    p.setPen(black);    p.setFont(big);    p.drawText(fontSize10,fontSize20,"x");    p.drawText(fontSize15,fontSize15,"y");    p.end();    PBPow->setPixmap(*PMPow);    PMLog = new QPixmap(pixSize,pixSize);    PMLog->fill(bg);    p.begin(PMLog);    p.setPen(black);    p.setFont(big);    p.drawText(fontSize10,fontSize20,"e");    p.drawText(fontSize15,fontSize15,"x");    p.end();    PBLog->setPixmap(*PMLog);    PMSquare = new QPixmap(pixSize,pixSize);    PMSquare->fill(bg);    p.begin(PMSquare);    p.setPen(black);    p.setFont(big);    p.drawText(fontSize10,fontSize20,"x");    p.drawText(fontSize15,fontSize15,"2");    p.end();    PBSquare->setPixmap(*PMSquare);    PMXRootY = new QPixmap(pixSize,pixSize);    PMXRootY->fill(bg);    p.begin(PMXRootY);    p.setPen(black);    p.setFont(big);    p.drawText(fontSize15,fontSize20,"x");    p.drawText(fontSize05,fontSize,"y");    p.drawLine(fontSize05,fontSize15,fontSize10,fontSize20);    p.drawLine(fontSize10,fontSize20,fontSize15,fontSize10);    p.drawLine(fontSize15,fontSize10,fontSize25,fontSize10);    p.end();    PBXRootY->setPixmap(*PMXRootY);    PMOneOverX = new QPixmap(pixSize,pixSize);    PMOneOverX->fill(bg);    p.begin(PMOneOverX);    p.setPen(black);    p.setFont(big);    p.drawText(fontSize10,fontSize10,"1");    int between = (fontSize10 + fontSize15) / 2;    p.drawLine(fontSize05,between,fontSize20,between);    p.drawText(fontSize10,fontSize20,"x");    p.end();    PBOneOverX->setPixmap(*PMOneOverX);    PMSquareRoot = new QPixmap(pixSize,pixSize);    PMSquareRoot->fill(bg);    p.begin(PMSquareRoot);    p.setPen(black);    p.setFont(big);    p.drawText(fontSize15,fontSize20,"x");    p.drawLine(fontSize05,fontSize15,fontSize10,fontSize20);    p.drawLine(fontSize10,fontSize20,fontSize15,fontSize10);    p.drawLine(fontSize15,fontSize10,fontSize25,fontSize10);    p.end();    PBSquareRoot->setPixmap(*PMSquareRoot);    delete PMPow;    delete PMLog;    delete PMSquare;    delete PMXRootY;    delete PMOneOverX;    delete PMSquareRoot;} FormAdvanced::FormAdvanced(QWidget *parent) :QWidget(parent) {    QSizePolicy mySizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred,FALSE);    QVBoxLayout *vbl = new QVBoxLayout(this);    AdvancedLayout = new QGridLayout( vbl, 2, 4, 0, "AdvancedLayout");    QFont fonty;    int fontSize = fonty.pixelSize();    if (fontSize == 12)	fontSize = 14;    // Row 1    PBMPlus = new QPushButton(this,"PBM+");    PBMPlus->setSizePolicy(mySizePolicy);    PBMPlus->setText(tr("M+"));    AdvancedLayout->addWidget(PBMPlus,0,0);    PBMR = new QPushButton(this,"PBMR");    PBMR->setSizePolicy(mySizePolicy);    PBMR->setText(tr("MR"));    AdvancedLayout->addWidget(PBMR,0,1);    PBMC = new QPushButton(this,"PBMC");    PBMC->setSizePolicy(mySizePolicy);    PBMC->setText(tr("MC"));    AdvancedLayout->addWidget(PBMC,0,2);    PBC = new QPushButton(this,"PBC");    PBC->setSizePolicy(mySizePolicy);    PBC->setText(tr("CE/C"));    AdvancedLayout->addWidget(PBC,0,3);    // Row 2    PBASin = new QPushButton(this,"PBASin");    PBASin->setSizePolicy(mySizePolicy);    PBASin->setText(tr("asin"));    AdvancedLayout->addWidget(PBASin,1,0);    PBACos = new QPushButton(this,"PBACos");    PBACos->setSizePolicy(mySizePolicy);    PBACos->setText(tr("acos"));    AdvancedLayout->addWidget(PBACos,1,1);    PBATan = new QPushButton(this,"PBATan");    PBATan->setSizePolicy(mySizePolicy);    PBATan->setText(tr("atan"));    AdvancedLayout->addWidget(PBATan,1,2);    PBDel = new QPushButton(this,"PBDel");    PBDel->setSizePolicy(mySizePolicy);    PBDel->setText(tr("<-"));    AdvancedLayout->addWidget(PBDel,1,3);    // Row 3    PBSin = new QPushButton(this,"PBSin");    PBSin->setSizePolicy(mySizePolicy);    PBSin->setText(tr("sin"));    AdvancedLayout->addWidget(PBSin,2,0);    PBCos = new QPushButton(this,"PBCos");    PBCos->setSizePolicy(mySizePolicy);    PBCos->setText(tr("cos"));    AdvancedLayout->addWidget(PBCos,2,1);    PBTan = new QPushButton(this,"PBTan");    PBTan->setSizePolicy(mySizePolicy);    PBTan->setText(tr("tan"));    AdvancedLayout->addWidget(PBTan,2,2);    PBFactorial = new QPushButton(this,"PBTan");    PBFactorial->setSizePolicy(mySizePolicy);    PBFactorial->setText(tr("n!"));    AdvancedLayout->addWidget(PBFactorial,2,3);    // Row 4    PBSquareRoot = new QPushButton(this,"PBSquareRoot");    PBSquareRoot->setSizePolicy(mySizePolicy);    AdvancedLayout->addWidget(PBSquareRoot,3,0);    PBXRootY = new QPushButton(this,"PBXRootY");    PBXRootY->setSizePolicy(mySizePolicy);    AdvancedLayout->addWidget(PBXRootY,3,1);    PBLn = new QPushButton(this,"PBLn");    PBLn->setSizePolicy(mySizePolicy);    PBLn->setText(tr("ln"));    AdvancedLayout->addWidget(PBLn,3,2);    PBNegate = new QPushButton(this,"PBNegate");    PBNegate->setSizePolicy(mySizePolicy);    PBNegate->setText(tr("+/-"));    AdvancedLayout->addWidget(PBNegate,3,3);    // Row 5    PBSquare = new QPushButton(this,"PBSquare");    PBSquare->setSizePolicy(mySizePolicy);    AdvancedLayout->addWidget(PBSquare,4,0);    PBPow = new QPushButton(this,"PBPow");    PBPow->setSizePolicy(mySizePolicy);    AdvancedLayout->addWidget(PBPow,4,1);    PBLog = new QPushButton(this,"PBLog");    PBLog->setSizePolicy(mySizePolicy);    PBLog->setText(tr("log"));    AdvancedLayout->addWidget(PBLog,4,2);    PBOneOverX = new QPushButton(this,"PBOneOverX");    PBOneOverX->setSizePolicy(mySizePolicy);    AdvancedLayout->addWidget(PBOneOverX,4,3);    updatePictures();    connect (PBMR, SIGNAL(clicked()), this, SLOT(MRClicked()));    connect (PBMC, SIGNAL(clicked()), this, SLOT(MCClicked()));    connect (PBMPlus, SIGNAL(clicked()), this, SLOT(MPlusClicked()));    connect (PBC, SIGNAL(clicked()), this, SLOT(CClicked()));    connect (PBASin, SIGNAL(clicked()), this, SLOT(aSinClicked()));    connect (PBACos, SIGNAL(clicked()), this, SLOT(aCosClicked()));    connect (PBATan, SIGNAL(clicked()), this, SLOT(aTanClicked()));    connect (PBDel, SIGNAL(clicked()), this, SLOT(DelClicked()));    connect (PBSin, SIGNAL(clicked()), this, SLOT(SinClicked()));    connect (PBCos, SIGNAL(clicked()), this, SLOT(CosClicked()));    connect (PBTan, SIGNAL(clicked()), this, SLOT(TanClicked()));    connect (PBOneOverX, SIGNAL(clicked()), this, SLOT(OneOverXClicked()));    connect (PBLog, SIGNAL(clicked()), this, SLOT(LogClicked()));    connect (PBLn, SIGNAL(clicked()), this, SLOT(LnClicked()));    connect (PBFactorial, SIGNAL(clicked()), this, SLOT(FactorialClicked()));    connect (PBNegate, SIGNAL(clicked()), this, SLOT(NegateClicked()));    connect (PBSquare, SIGNAL(clicked()), this, SLOT(SquareClicked()));    connect (PBPow, SIGNAL(clicked()), this, SLOT(PowClicked()));    connect (PBSquareRoot, SIGNAL(clicked()), this, SLOT(SquareRootClicked()));    connect (PBXRootY, SIGNAL(clicked()), this, SLOT(XRootYClicked()));    siw = new Type1DecimalInputWidget(this,"SIW");    vbl->addWidget(siw);}FormAdvanced::~FormAdvanced() {    delete PBDel;    delete PBC;    delete PBMR;    delete PBMC;    delete PBMPlus;    delete PBSin;    delete PBCos;    delete PBTan;    delete PBOneOverX;    delete PBLog;    delete PBLn;    delete PBFactorial;    delete PBNegate;    delete PBSquare;    delete PBPow;    delete PBSquareRoot;    delete PBXRootY;    delete siw;    delete AdvancedLayout;}void FormAdvanced::showEvent ( QShowEvent *e ) {    systemEngine->setAccType("Double"); // No tr    QWidget::showEvent(e);}void FormAdvanced::MCClicked() {    systemEngine->memoryReset();}void FormAdvanced::MRClicked() {    systemEngine->memoryRecall();}void FormAdvanced::MPlusClicked() {    systemEngine->memorySave();}void FormAdvanced::CClicked() {    systemEngine->dualReset();}void FormAdvanced::aSinClicked() {    systemEngine->pushInstruction(new DoubleASin());}void FormAdvanced::aCosClicked() {    systemEngine->pushInstruction(new DoubleACos());}void FormAdvanced::aTanClicked() {    systemEngine->pushInstruction(new DoubleATan());}void FormAdvanced::DelClicked() {    systemEngine->delChar();}void FormAdvanced::SinClicked() {    systemEngine->pushInstruction(new DoubleSin());}void FormAdvanced::CosClicked() {    systemEngine->pushInstruction(new DoubleCos());}void FormAdvanced::TanClicked() {    systemEngine->pushInstruction(new DoubleTan());}void FormAdvanced::OneOverXClicked() {    systemEngine->pushInstruction(new DoubleOneOverX());}void FormAdvanced::LogClicked() {    systemEngine->pushInstruction(new DoubleExp());}void FormAdvanced::LnClicked() {    systemEngine->pushInstruction(new DoubleLn());}void FormAdvanced::FactorialClicked() {    systemEngine->pushInstruction(new DoubleFactorial());}void FormAdvanced::NegateClicked() {    systemEngine->pushInstruction(new DoubleNegate());}void FormAdvanced::SquareClicked() {    systemEngine->pushInstruction(new DoubleSquare());}void FormAdvanced::PowClicked() {    systemEngine->pushInstruction(new DoublePow());}void FormAdvanced::PiClicked() {    systemEngine->push(QString("3.14159265358979323846"));}void FormAdvanced::SquareRootClicked() {    systemEngine->pushInstruction(new DoubleSquareRoot());}void FormAdvanced::XRootYClicked() {    systemEngine->pushInstruction(new DoubleXRootY());}

⌨️ 快捷键说明

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