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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? calculator.cpp

?? QT 開發(fā)環(huán)境里面一個(gè)很重要的文件
?? CPP
字號(hào):
/******************************************************************************** Copyright (C) 2005-2006 Trolltech ASA. All rights reserved.**** This file is part of the example classes of the Qt Toolkit.**** This file may be used under the terms of the GNU General Public** License version 2.0 as published by the Free Software Foundation** and appearing in the file LICENSE.GPL included in the packaging of** this file.  Please review the following information to ensure GNU** General Public Licensing requirements will be met:** http://www.trolltech.com/products/qt/opensource.html**** If you are unsure which license is appropriate for your use, please** review the following information:** http://www.trolltech.com/products/qt/licensing.html or contact the** sales department at sales@trolltech.com.**** 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 <QtGui>#include <math.h>#include "button.h"#include "calculator.h"Calculator::Calculator(QWidget *parent)    : QDialog(parent){    sumInMemory = 0.0;    sumSoFar = 0.0;    factorSoFar = 0.0;    waitingForOperand = true;    display = new QLineEdit("0");    display->setReadOnly(true);    display->setAlignment(Qt::AlignRight);    display->setMaxLength(15);    display->installEventFilter(this);    QFont font = display->font();    font.setPointSize(font.pointSize() + 8);    display->setFont(font);    QColor digitColor(150, 205, 205);    QColor backspaceColor(225, 185, 135);    QColor memoryColor(100, 155, 155);    QColor operatorColor(155, 175, 195);    for (int i = 0; i < NumDigitButtons; ++i) {	digitButtons[i] = createButton(QString::number(i), digitColor,                                       SLOT(digitClicked()));    }    pointButton = createButton(tr("."), digitColor, SLOT(pointClicked()));    changeSignButton = createButton(tr("\261"), digitColor, SLOT(changeSignClicked()));    backspaceButton = createButton(tr("Backspace"), backspaceColor,                                   SLOT(backspaceClicked()));    clearButton = createButton(tr("Clear"), backspaceColor, SLOT(clear()));    clearAllButton = createButton(tr("Clear All"), backspaceColor.light(120),                                  SLOT(clearAll()));    clearMemoryButton = createButton(tr("MC"), memoryColor,                                     SLOT(clearMemory()));    readMemoryButton = createButton(tr("MR"), memoryColor, SLOT(readMemory()));    setMemoryButton = createButton(tr("MS"), memoryColor, SLOT(setMemory()));    addToMemoryButton = createButton(tr("M+"), memoryColor,                                     SLOT(addToMemory()));    divisionButton = createButton(tr("\367"), operatorColor,                                  SLOT(multiplicativeOperatorClicked()));    timesButton = createButton(tr("\327"), operatorColor,                               SLOT(multiplicativeOperatorClicked()));    minusButton = createButton(tr("-"), operatorColor,                               SLOT(additiveOperatorClicked()));    plusButton = createButton(tr("+"), operatorColor,                              SLOT(additiveOperatorClicked()));    squareRootButton = createButton(tr("Sqrt"), operatorColor,                                    SLOT(unaryOperatorClicked()));    powerButton = createButton(tr("x\262"), operatorColor,                               SLOT(unaryOperatorClicked()));    reciprocalButton = createButton(tr("1/x"), operatorColor,                                    SLOT(unaryOperatorClicked()));    equalButton = createButton(tr("="), operatorColor.light(120),                               SLOT(equalClicked()));    QGridLayout *mainLayout = new QGridLayout;    mainLayout->setSizeConstraint(QLayout::SetFixedSize);    mainLayout->addWidget(display, 0, 0, 1, 6);    mainLayout->addWidget(backspaceButton, 1, 0, 1, 2);    mainLayout->addWidget(clearButton, 1, 2, 1, 2);    mainLayout->addWidget(clearAllButton, 1, 4, 1, 2);    mainLayout->addWidget(clearMemoryButton, 2, 0);    mainLayout->addWidget(readMemoryButton, 3, 0);    mainLayout->addWidget(setMemoryButton, 4, 0);    mainLayout->addWidget(addToMemoryButton, 5, 0);    for (int i = 1; i < NumDigitButtons; ++i) {        int row = ((9 - i) / 3) + 2;        int column = ((i - 1) % 3) + 1;        mainLayout->addWidget(digitButtons[i], row, column);    }    mainLayout->addWidget(digitButtons[0], 5, 1);    mainLayout->addWidget(pointButton, 5, 2);    mainLayout->addWidget(changeSignButton, 5, 3);    mainLayout->addWidget(divisionButton, 2, 4);    mainLayout->addWidget(timesButton, 3, 4);    mainLayout->addWidget(minusButton, 4, 4);    mainLayout->addWidget(plusButton, 5, 4);    mainLayout->addWidget(squareRootButton, 2, 5);    mainLayout->addWidget(powerButton, 3, 5);    mainLayout->addWidget(reciprocalButton, 4, 5);    mainLayout->addWidget(equalButton, 5, 5);    setLayout(mainLayout);    setWindowTitle(tr("Calculator"));}bool Calculator::eventFilter(QObject *target, QEvent *event){    if (target == display) {        if (event->type() == QEvent::MouseButtonPress                || event->type() == QEvent::MouseButtonDblClick                || event->type() == QEvent::MouseButtonRelease                || event->type() == QEvent::ContextMenu) {            QMouseEvent *mouseEvent = static_cast<QMouseEvent *>(event);            if (mouseEvent->buttons() & Qt::LeftButton) {                QPalette newPalette = palette();                newPalette.setColor(QPalette::Base,                                    display->palette().color(QPalette::Text));                newPalette.setColor(QPalette::Text,                                    display->palette().color(QPalette::Base));                display->setPalette(newPalette);            } else {                display->setPalette(palette());            }            return true;        }    }    return QDialog::eventFilter(target, event);}void Calculator::digitClicked(){    Button *clickedButton = qobject_cast<Button *>(sender());    int digitValue = clickedButton->text().toInt();    if (display->text() == "0" && digitValue == 0.0)        return;    if (waitingForOperand) {        display->clear();	waitingForOperand = false;    }    display->setText(display->text() + QString::number(digitValue));}void Calculator::unaryOperatorClicked(){    Button *clickedButton = qobject_cast<Button *>(sender());    QString clickedOperator = clickedButton->text();    double operand = display->text().toDouble();    double result = 0.0;    if (clickedOperator == tr("Sqrt")) {        if (operand < 0.0) {            abortOperation();            return;        }        result = sqrt(operand);    } else if (clickedOperator == tr("x\262")) {        result = pow(operand, 2.0);    } else if (clickedOperator == tr("1/x")) {        if (operand == 0.0) {	    abortOperation();	    return;        }        result = 1.0 / operand;    }    display->setText(QString::number(result));    waitingForOperand = true;}void Calculator::additiveOperatorClicked(){    Button *clickedButton = qobject_cast<Button *>(sender());    QString clickedOperator = clickedButton->text();    double operand = display->text().toDouble();    if (!pendingMultiplicativeOperator.isEmpty()) {        if (!calculate(operand, pendingMultiplicativeOperator)) {            abortOperation();	    return;        }        display->setText(QString::number(factorSoFar));        operand = factorSoFar;        factorSoFar = 0.0;        pendingMultiplicativeOperator.clear();    }    if (!pendingAdditiveOperator.isEmpty()) {        if (!calculate(operand, pendingAdditiveOperator)) {            abortOperation();	    return;        }        display->setText(QString::number(sumSoFar));    } else {        sumSoFar = operand;    }    pendingAdditiveOperator = clickedOperator;    waitingForOperand = true;}void Calculator::multiplicativeOperatorClicked(){    Button *clickedButton = qobject_cast<Button *>(sender());    QString clickedOperator = clickedButton->text();    double operand = display->text().toDouble();    if (!pendingMultiplicativeOperator.isEmpty()) {        if (!calculate(operand, pendingMultiplicativeOperator)) {            abortOperation();	    return;        }        display->setText(QString::number(factorSoFar));    } else {        factorSoFar = operand;    }    pendingMultiplicativeOperator = clickedOperator;    waitingForOperand = true;}void Calculator::equalClicked(){    double operand = display->text().toDouble();    if (!pendingMultiplicativeOperator.isEmpty()) {        if (!calculate(operand, pendingMultiplicativeOperator)) {            abortOperation();	    return;        }        operand = factorSoFar;        factorSoFar = 0.0;        pendingMultiplicativeOperator.clear();    }    if (!pendingAdditiveOperator.isEmpty()) {        if (!calculate(operand, pendingAdditiveOperator)) {            abortOperation();	    return;        }        pendingAdditiveOperator.clear();    } else {        sumSoFar = operand;    }    display->setText(QString::number(sumSoFar));    sumSoFar = 0.0;    waitingForOperand = true;}void Calculator::pointClicked(){    if (waitingForOperand)        display->setText("0");    if (!display->text().contains("."))        display->setText(display->text() + tr("."));    waitingForOperand = false;}void Calculator::changeSignClicked(){    QString text = display->text();    double value = text.toDouble();    if (value > 0.0) {        text.prepend(tr("-"));    } else if (value < 0.0) {        text.remove(0, 1);    }    display->setText(text);}void Calculator::backspaceClicked(){    if (waitingForOperand)        return;    QString text = display->text();    text.chop(1);    if (text.isEmpty()) {        text = "0";        waitingForOperand = true;    }    display->setText(text);}void Calculator::clear(){    if (waitingForOperand)        return;    display->setText("0");    waitingForOperand = true;}void Calculator::clearAll(){    sumSoFar = 0.0;    factorSoFar = 0.0;    pendingAdditiveOperator.clear();    pendingMultiplicativeOperator.clear();    display->setText("0");    waitingForOperand = true;}void Calculator::clearMemory(){    sumInMemory = 0.0;}void Calculator::readMemory(){    display->setText(QString::number(sumInMemory));    waitingForOperand = true;}void Calculator::setMemory(){    equalClicked();    sumInMemory = display->text().toDouble();}void Calculator::addToMemory(){    equalClicked();    sumInMemory += display->text().toDouble();}Button *Calculator::createButton(const QString &text, const QColor &color,                                 const char *member){    Button *button = new Button(text, color);    connect(button, SIGNAL(clicked()), this, member);    return button;}void Calculator::abortOperation(){    clearAll();    display->setText(tr("####"));}bool Calculator::calculate(double rightOperand, const QString &pendingOperator){    if (pendingOperator == tr("+")) {        sumSoFar += rightOperand;    } else if (pendingOperator == tr("-")) {        sumSoFar -= rightOperand;    } else if (pendingOperator == tr("\327")) {        factorSoFar *= rightOperand;    } else if (pendingOperator == tr("\367")) {	if (rightOperand == 0.0)	    return false;	factorSoFar /= rightOperand;    }    return true;}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜精品久久久久久久99樱桃| 国产精品99久久不卡二区| 欧美一区二区三区白人| 免费成人美女在线观看.| 国产欧美日韩在线观看| 国产在线一区观看| 欧美日韩国产一区二区三区地区| 久久综合久久鬼色中文字| 97久久精品人人做人人爽| 日本系列欧美系列| 一区二区三区日韩| 中文字幕中文字幕在线一区| 日韩一区二区三区视频在线| 在线一区二区三区| 成人av资源在线观看| 久久成人久久爱| 日本中文字幕一区二区视频| 亚洲免费在线看| 欧美极品少妇xxxxⅹ高跟鞋| 日韩精品一区二区三区视频在线观看 | 国产九九视频一区二区三区| 亚洲综合激情小说| 亚洲女人****多毛耸耸8| 国产亚洲欧美日韩日本| 欧美一区二区三区视频在线观看| 欧美在线影院一区二区| 99精品久久只有精品| 国产精品一区二区无线| 久久99国产精品尤物| 青娱乐精品视频| 日本va欧美va瓶| 视频精品一区二区| 午夜一区二区三区视频| 亚洲激情一二三区| 亚洲专区一二三| 亚洲国产成人tv| 亚洲国产色一区| 五月天亚洲婷婷| 午夜精品成人在线| 日韩在线一二三区| 秋霞午夜av一区二区三区| 日本在线观看不卡视频| 日韩激情中文字幕| 美女免费视频一区二区| 久久狠狠亚洲综合| 国产精品一二三四| 国产91精品一区二区麻豆网站 | 亚洲男人的天堂在线aⅴ视频| 日韩一区有码在线| 樱桃视频在线观看一区| 一区二区三区在线免费视频| 亚洲人成亚洲人成在线观看图片| 亚洲美女在线一区| 亚洲国产毛片aaaaa无费看| 日韩成人av影视| 精一区二区三区| 国产河南妇女毛片精品久久久 | 国产丶欧美丶日本不卡视频| 白白色 亚洲乱淫| 色综合久久久久网| 欧美日韩美少妇| 日韩亚洲欧美在线| 久久久久亚洲综合| 国产精品女主播在线观看| 亚洲精品成a人| 奇米精品一区二区三区在线观看| 久久99精品久久久久| 国产91高潮流白浆在线麻豆| 91片黄在线观看| 8x8x8国产精品| 国产色产综合产在线视频 | 精品一区二区影视| 成人午夜在线视频| 欧美特级限制片免费在线观看| 欧美精品久久久久久久多人混战| 精品国产一区二区三区久久影院| 国产精品视频在线看| 亚洲国产wwwccc36天堂| 狠狠色狠狠色综合| 成人av网站免费| 777午夜精品视频在线播放| 国产亚洲人成网站| 亚洲一区二区三区三| 国产乱妇无码大片在线观看| 在线免费观看日本一区| 久久久久国产精品人| 亚洲一区二区综合| 国产成人综合在线观看| 中文字幕第一区第二区| 亚洲电影中文字幕在线观看| 国产在线日韩欧美| 欧洲精品一区二区三区在线观看| 精品美女被调教视频大全网站| 日韩美女视频19| 精品一区在线看| 欧美亚洲一区二区在线| 国产视频在线观看一区二区三区| 五月天欧美精品| av在线综合网| 久久久久青草大香线综合精品| 亚洲小说欧美激情另类| 国产成人午夜视频| 日韩午夜在线影院| 亚洲综合色区另类av| 懂色av一区二区三区免费看| 91精品在线免费观看| 亚洲免费在线看| 国产suv精品一区二区6| 日韩欧美国产一区在线观看| 亚洲综合丁香婷婷六月香| 成人精品视频.| 久久免费美女视频| 日本在线播放一区二区三区| 色成人在线视频| 国产精品久线观看视频| 国产一区二区三区av电影| 欧美一级片在线| 亚洲线精品一区二区三区八戒| 成人动漫一区二区| 精品国产髙清在线看国产毛片| 亚洲mv在线观看| 欧洲精品一区二区| 亚洲自拍另类综合| 91免费在线视频观看| 欧美高清在线视频| 国产一区二区三区电影在线观看| 欧美成人aa大片| 久热成人在线视频| 日韩欧美视频在线| 麻豆国产91在线播放| 日韩免费高清av| 九九精品一区二区| 日韩欧美中文字幕公布| 男女男精品视频| 日韩小视频在线观看专区| 免费在线观看一区二区三区| 在线播放日韩导航| 日本美女一区二区三区| 5566中文字幕一区二区电影| 偷拍日韩校园综合在线| 欧美高清视频一二三区| 麻豆传媒一区二区三区| 欧美成人在线直播| 国产乱色国产精品免费视频| 国产日产亚洲精品系列| 风间由美中文字幕在线看视频国产欧美 | 欧美午夜免费电影| 亚洲成av人片| 欧美不卡一区二区三区四区| 极品少妇xxxx精品少妇| 久久你懂得1024| 97精品国产露脸对白| 亚洲在线免费播放| 宅男噜噜噜66一区二区66| 日本 国产 欧美色综合| 久久综合国产精品| 不卡电影一区二区三区| 亚洲久本草在线中文字幕| 欧美性大战xxxxx久久久| 日本亚洲视频在线| 国产调教视频一区| 一本色道久久综合亚洲91| 亚洲第一激情av| 久久综合狠狠综合久久综合88| caoporn国产精品| 亚洲一区二区五区| 日韩欧美高清在线| 成人污污视频在线观看| 亚洲激情成人在线| 7777精品伊人久久久大香线蕉超级流畅| 美女性感视频久久| 国产精品无人区| 欧美三级中文字幕| 国产美女在线精品| 一区二区三区久久| 精品国产乱码久久久久久闺蜜| 成+人+亚洲+综合天堂| 天堂蜜桃一区二区三区| 日本一区二区视频在线| 欧美在线免费观看视频| 国产尤物一区二区在线| 一区二区三区中文在线| 精品久久久久久久久久久久包黑料 | 国产日产欧产精品推荐色| 欧美色图片你懂的| 国产福利一区在线| 亚洲妇女屁股眼交7| 国产欧美精品国产国产专区| 欧美丝袜第三区| 国产大片一区二区| 奇米影视7777精品一区二区| 亚洲免费在线观看视频| 精品三级在线观看| 欧美性三三影院| av午夜一区麻豆| 久久99精品久久久久久| 亚洲成人动漫在线观看| 国产精品免费视频观看| 日韩欧美一级二级| 欧美日韩精品二区第二页|