亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? calculator.cpp

?? 嵌入式Qt下的一個計算器源碼
?? CPP
字號:
/******************************************************************************** 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.******************************************************************************/#include <qtopia/qtopiaapplication.h>#ifndef QTOPIA_PHONE#include <QList>#include <QSettings>#ifdef ENABLE_SCIENCE#include "interfaces/advanced.h"#endif#ifdef ENABLE_FRACTION#include "interfaces/fraction.h"#endif#ifdef ENABLE_CONVERSION#include "interfaces/conversion.h"#endif#else#include <QAction>#include <QMenu>#include "interfaces/phone.h"#endif#include <QKeyEvent>#include <QDebug>#include "interfaces/simple.h"#include "calculator.h"#include "engine.h"Engine *systemEngine;// Calculator classCalculator::Calculator( QWidget * p, Qt::WFlags fl) : QWidget (p, fl){    setObjectName("Calculator");     QtopiaApplication::setInputMethodHint(this, QtopiaApplication::AlwaysOff);    setWindowTitle(tr("Calculator", "application header"));    systemEngine = new Engine();    QVBoxLayout *calculatorLayout = new QVBoxLayout(this);    calculatorLayout->setSizeConstraint(QLayout::SetNoConstraint);    calculatorLayout->setSpacing( 0 );    calculatorLayout->setMargin( 0 );       LCD = new MyLcdDisplay();    LCD->setFrameShape( QFrame::NoFrame );    LCD->setLineWidth( 0 );    calculatorLayout->addWidget(LCD);    systemEngine->setDisplay(LCD);#ifndef QT_NO_CLIPBOARD    cb = qApp->clipboard();#endif    connect(systemEngine,SIGNAL(stackChanged()),	LCD,SLOT(readStack()));    // Load plugins#ifndef QTOPIA_PHONE    modeBox = new QComboBox(this);    calculatorLayout->addWidget(modeBox);    pluginStackedWidget = new QStackedWidget();    connect (modeBox, SIGNAL(activated(int)), pluginStackedWidget, SLOT(setCurrentIndex(int)));    calculatorLayout->addWidget(pluginStackedWidget);        // add & sort user interfaces     QList<CalcUserInterface*> uiList;    uiList.append(new FormSimple());#ifdef ENABLE_FRACTION    uiList.append(new FormFraction());#endif#ifdef ENABLE_SCIENCE    uiList.append(new FormAdvanced());#endif#ifdef ENABLE_CONVERSION    uiList.append(new FormConversion());#endif        QStringList uiNames;    foreach(CalcUserInterface* ui, uiList) {        uiNames.append(ui->interfaceName());    }     uiNames.sort();    foreach(QString uiName, uiNames) {        for (int i=0; i<uiList.size(); i++) {            if (uiList[i]->interfaceName() == uiName) {                pluginStackedWidget->addWidget(uiList.takeAt(i));                modeBox->addItem(uiName);            }        }    }    QSettings config("Trolltech","calculator"); // No tr    config.beginGroup("View"); // No tr    QString simpleUIName = qApp->translate("FormSimple", "Simple");    QString uiName = config.value("lastView", simpleUIName).toString();     int lastViewIndex = uiNames.indexOf(uiName);    if (lastViewIndex == -1) // language has changed in the meantime        lastViewIndex = uiNames.indexOf(simpleUIName);    modeBox->setCurrentIndex(2/*lastViewIndex*/);    pluginStackedWidget->setCurrentIndex(lastViewIndex);#else    si = 0;    if (!Qtopia::mousePreferred()) {        si = new FormPhone(LCD);        QtopiaApplication::setInputMethodHint(si, QtopiaApplication::AlwaysOff);        connect(si, SIGNAL( close() ), this, SLOT( close() ) );        calculatorLayout->addWidget(si);        si->setFocus( );        LCD->setFocusPolicy( Qt::NoFocus );    } else {        calculatorLayout->addWidget(new FormSimple());    }        QMenu * cmenu = QSoftMenuBar::menuFor(this);    QAction * a_copy = new QAction(  QIcon( ":icon/copy" ),            tr( "Copy" ), this);    a_copy->setWhatsThis( tr("Copy the last result.") );    connect( a_copy, SIGNAL( triggered() ), this, SLOT( copy() ) );            if (!Qtopia::mousePreferred()) {        QAction * a_clear = new QAction(  QIcon( ":icon/clearall" ),                tr( "Clear All" ), this );        connect( a_clear, SIGNAL( triggered() ), si, SLOT( clearAll() ) );        cmenu->addAction(a_clear);    }    cmenu->addAction(a_copy);#endif // !QTOPIA_PHONE}Calculator::~Calculator(){#ifndef QTOPIA_PHONE    if (modeBox->count() > 0 ) {	QSettings config("Trolltech","calculator"); // No tr	config.beginGroup("View"); // No tr	config.setValue("lastView", modeBox->currentText() ); // No tr    }    #endif    if ( LCD )        delete LCD;    if ( systemEngine )        delete systemEngine;}void Calculator::keyPressEvent(QKeyEvent *e) {    int key = e->key();#ifndef QT_NO_CLIPBOARD    if (e->modifiers() & Qt::ControlModifier) {	switch (key) {	    case Qt::Key_C:		copy();		break;	    case Qt::Key_V:		paste();		break;	    case Qt::Key_X:		cut();		break;	}        e->accept();    }#endif    if (Qtopia::mousePreferred()) {        switch (key) {            // backspace            case Qt::Key_Backtab:            case Qt::Key_Backspace:            case Qt::Key_Delete:                    systemEngine->delChar();                break;            // evaluate            case Qt::Key_Enter:            case Qt::Key_Return:            case Qt::Key_Equal:                systemEngine->evaluate();           //void paste();    //   void cut();                break;            // basic mathematical keys            case Qt::Key_Plus:                systemEngine->pushInstruction("Add"); // No tr                break;            case Qt::Key_Asterisk:                systemEngine->pushInstruction("Multiply"); // No tr                break;            case Qt::Key_Minus:                systemEngine->pushInstruction("Subtract"); // No tr                break;            case Qt::Key_Slash:                systemEngine->pushInstruction("Divide"); // No tr                break;            case Qt::Key_ParenLeft:                systemEngine->openBrace();                break;            case Qt::Key_ParenRight:                systemEngine->closeBrace();                break;            default:                QString text = e->text();                if ( !text.isEmpty() ) {                    QChar qc = e->text().at(0);                    if ( qc.isPrint() && !qc.isSpace() ) {                        systemEngine->push(qc.toLatin1());                        e->accept();                        return;                    }                }                QWidget::keyPressEvent(e);       }    }    e->ignore();}void Calculator::copy() {    cb->setText(systemEngine->getDisplay());}void Calculator::cut() {    copy();    systemEngine->softReset();}void Calculator::paste() {    QString t = cb->text();    if (!t.isEmpty()) {	for (int i=0; i<t.length(); i++) {	    switch (t[i].toLatin1()) {		case '=':		    systemEngine->evaluate();		    break;		case '+':		    systemEngine->pushInstruction("Add"); // No tr		    break;		case '*':		    systemEngine->pushInstruction("Multiply"); // No tr		    break;		case '-':		    systemEngine->pushInstruction("Subtract"); // No tr		    break;		case '/':		    systemEngine->pushInstruction("Divide"); // No tr		    break;		case '(':		    systemEngine->openBrace();		    break;		case ')':		    systemEngine->closeBrace();		    break;		default:		    if ( t[i].isPrint() && !t[i].isSpace() ) {			systemEngine->push(t[i].toLatin1());		    }	    }	}    }}void Calculator::showEvent(QShowEvent * e){    systemEngine->memoryReset();    systemEngine->dualReset();    QtopiaApplication::hideInputMethod();    QWidget::showEvent( e );    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜臀av一区二区三区| 99久久免费精品| 成人小视频免费在线观看| 91成人网在线| 国产清纯白嫩初高生在线观看91 | 国产精品五月天| 日本一道高清亚洲日美韩| 91在线播放网址| 欧美国产视频在线| 韩日av一区二区| 777xxx欧美| 亚洲国产视频在线| 91在线国内视频| 国产亚洲婷婷免费| 黄色资源网久久资源365| 911国产精品| 午夜成人免费视频| 在线观看视频91| 亚洲精品福利视频网站| 成人av电影在线观看| 久久久天堂av| 国产真实乱子伦精品视频| 欧美一区二区三区白人| 偷拍一区二区三区四区| 欧美午夜免费电影| 一区二区三区日本| 欧美午夜一区二区三区免费大片| 亚洲精品美腿丝袜| 91美女片黄在线观看| 日韩毛片视频在线看| av不卡免费电影| 17c精品麻豆一区二区免费| 99re热这里只有精品免费视频 | 成人亚洲精品久久久久软件| 久久久综合视频| 极品少妇xxxx偷拍精品少妇| 日韩欧美国产一区在线观看| 久久成人av少妇免费| 欧美不卡一区二区三区| 国产一区二区三区最好精华液| 久久久久久久久久电影| 成人av在线电影| 亚洲精品中文在线影院| 欧美三级中文字| 蜜臀av性久久久久av蜜臀妖精| 欧美va亚洲va| 成人免费高清视频| 一区二区三区四区中文字幕| 欧美日韩免费在线视频| 奇米亚洲午夜久久精品| 精品福利在线导航| 北岛玲一区二区三区四区| 亚洲女人的天堂| 欧美一区二区高清| 成人中文字幕电影| 亚洲在线免费播放| 日韩美女在线视频| 成人av免费在线观看| 香蕉久久一区二区不卡无毒影院| 欧美sm极限捆绑bd| 欧美一区午夜视频在线观看| 国产原创一区二区| 亚洲人成小说网站色在线| 777午夜精品视频在线播放| 国产中文一区二区三区| 有码一区二区三区| 久久久www免费人成精品| 91免费观看视频| 久久精品国产精品亚洲精品| 综合分类小说区另类春色亚洲小说欧美 | 日韩三级伦理片妻子的秘密按摩| 国产成人精品三级| 丝袜诱惑亚洲看片| 国产精品久久久久久久久图文区| 欧美久久免费观看| 成人在线一区二区三区| 日本最新不卡在线| 亚洲欧美日韩一区二区三区在线观看| 3d动漫精品啪啪一区二区竹菊| 国产91丝袜在线播放| 日本v片在线高清不卡在线观看| 国产精品久99| 精品福利av导航| 欧美精品久久99久久在免费线| 成人免费毛片嘿嘿连载视频| 另类小说视频一区二区| 午夜免费欧美电影| 中文字幕一区二区三区色视频| 欧美一区二区成人6969| 在线精品国精品国产尤物884a| 国产精品69毛片高清亚洲| 福利电影一区二区三区| 狠狠色丁香久久婷婷综合_中| 亚洲午夜国产一区99re久久| 国产精品动漫网站| 国产精品人成在线观看免费| 精品久久久久久久一区二区蜜臀| 在线观看日韩av先锋影音电影院| 不卡的av在线| 成人一二三区视频| 国产高清不卡一区| 国产一区日韩二区欧美三区| 免费在线观看精品| 亚洲不卡一区二区三区| 一区二区三区精品久久久| 亚洲三级久久久| 中文字幕中文字幕一区二区| 国产欧美精品国产国产专区| 国产亚洲精品精华液| 久久久久久9999| 久久久久亚洲蜜桃| 国产网站一区二区三区| 国产色综合久久| 国产欧美日韩精品一区| 国产欧美精品一区| 国产欧美日韩卡一| 日本一区二区三区免费乱视频| 久久久精品人体av艺术| 国产色婷婷亚洲99精品小说| 欧美激情在线免费观看| 国产日韩欧美制服另类| 久久久欧美精品sm网站 | 欧美精品亚洲二区| 欧美日韩精品电影| 欧美一区永久视频免费观看| 精品精品国产高清一毛片一天堂| 亚洲最快最全在线视频| 一区二区三区久久| 亚洲成av人片观看| 久久国产精品99久久人人澡| 国产乱人伦偷精品视频不卡 | 欧美a一区二区| 激情欧美日韩一区二区| 成人精品视频网站| 欧美在线看片a免费观看| 欧美日韩高清一区二区不卡| 欧美成人vps| 国产精品二区一区二区aⅴ污介绍| 亚洲欧美另类在线| 日本成人在线视频网站| 国产精品123区| 日本韩国欧美一区二区三区| 91精品国产色综合久久ai换脸| 久久久噜噜噜久噜久久综合| 1区2区3区精品视频| 日本aⅴ精品一区二区三区 | 日韩av中文在线观看| 国产乱码一区二区三区| 一本大道av伊人久久综合| 3751色影院一区二区三区| 国产色综合一区| 午夜欧美2019年伦理 | 日本欧美韩国一区三区| 国产夫妻精品视频| 欧美日韩黄视频| 日本一区二区三区视频视频| 亚洲第一二三四区| 国产成a人无v码亚洲福利| 欧美日韩国产三级| 欧美国产日本韩| 老司机精品视频导航| 91久久香蕉国产日韩欧美9色| 精品国产一区二区三区四区四| 最新日韩在线视频| 精品午夜一区二区三区在线观看| 色美美综合视频| 日本一区二区三区四区在线视频| 国产成人免费视频精品含羞草妖精| 色噜噜狠狠色综合欧洲selulu| 337p日本欧洲亚洲大胆色噜噜| 一区二区在线免费| 成人午夜私人影院| 26uuu国产电影一区二区| 亚洲成人精品影院| 91年精品国产| 国产精品网曝门| 国产精品亚洲综合一区在线观看| 欧美精品久久一区| 亚洲一区二区在线观看视频| 成人的网站免费观看| 国产人久久人人人人爽| 国产真实乱对白精彩久久| 日韩欧美激情在线| 日韩二区在线观看| 6080日韩午夜伦伦午夜伦| 亚洲国产精品久久久久婷婷884| 99综合电影在线视频| 中文字幕第一区| 国产91精品在线观看| 久久只精品国产| 国产一区二区三区电影在线观看| 日韩小视频在线观看专区| 日韩成人伦理电影在线观看| 欧美女孩性生活视频| 亚洲国产中文字幕| 欧美日韩亚洲国产综合| 亚洲一区二区三区四区在线免费观看 | 色94色欧美sute亚洲13| 国产精品久久毛片| 成人av在线资源网站|