qt4第一例:mini計數器

來源:互聯網
上載者:User

不要qt designer,像寫java程式一樣,把控制項一個一個寫到介面上。剛開始來個簡單的計數器。

程式執行的結果

程式很簡單,由三個源檔案組成,分別是caculator.h,caculator.cpp,main.cpp

代碼如下:

 1、caculator.h 

/**//*
*    檔案:caculator.h
*    作者:yangdk
*    email:jidacun@163.com
*    首頁:http://blog.csdn.net/yang_dk
*/

#ifndef _CACULATOR_H
#define _CACULATOR_H

#include <QDialog>

class QLabel;
class QLineEdit;
class QPushButton;
class QVBoxLayout;
class QHBoxLayout;
class QGridLayout;

class CacuDialog : public QDialog
...{
    Q_OBJECT
    
public:
    CacuDialog(QWidget *parent = 0);

private slots:
    void add();
    void dec();
    void mul();
    void div();
    void clear();

private:
    QLineEdit *editFirst;
    QLineEdit *editSecond;
    QLineEdit *editResult;
    QPushButton *addButton,*decButton,*mulButton,*divButton;
    QPushButton *clearButton;
};

#endif

2、caculator.cpp

/**//*
*    檔案:caculator.cpp
*    作者:yangdk
*    郵箱:jidacun@163.com
*    首頁:http://blog.csdn.net/yang_dk
*/

#include <QtGui>
#include "caculator.h"

CacuDialog::CacuDialog(QWidget *parent) : QDialog(parent)
...{
    editFirst = new QLineEdit;
    editSecond = new QLineEdit;
    editResult = new QLineEdit;
    
    editResult->setReadOnly(true);    //顯示控制項唯讀
    editResult->setAlignment(Qt::AlignRight);    //讓結果的顯示向靠右對齊
    
    addButton = new QPushButton(tr("Add"));
    decButton = new QPushButton(tr("Dec"));
    mulButton = new QPushButton(tr("Mul"));
    divButton = new QPushButton(tr("Div"));
    clearButton = new QPushButton(tr("clear"));
    clearButton->setDefault(true);

    connect(addButton,SIGNAL(clicked()),this,SLOT(add()));
    connect(decButton,SIGNAL(clicked()),this,SLOT(dec()));
    connect(mulButton,SIGNAL(clicked()),this,SLOT(mul()));
    connect(divButton,SIGNAL(clicked()),this,SLOT(div()));
    connect(clearButton,SIGNAL(clicked()),this,SLOT(clear()));

    QVBoxLayout *mainLayout = new QVBoxLayout;
    QHBoxLayout *top = new QHBoxLayout;
    QGridLayout *bottom =new QGridLayout;
    
    top->addWidget(editFirst);
    top->addWidget(editSecond);
    top->addWidget(editResult);
    
    bottom->addWidget(addButton, 0, 0);
    bottom->addWidget(decButton, 0, 1);
    bottom->addWidget(mulButton, 1, 0);
    bottom->addWidget(divButton, 1, 1);
    bottom->addWidget(clearButton,0,2,2,1);//佔兩橫一列
    
    mainLayout->addLayout(top);
    mainLayout->addLayout(bottom);
    setLayout(mainLayout);
}

void CacuDialog::add()
...{
    double res;
    res = editFirst->text().toDouble()+editSecond->text().toDouble();
    editResult->setText(QString::number(res));
}

void CacuDialog::dec()
...{
    double res;
    res = editFirst->text().toDouble()-editSecond->text().toDouble();
    editResult->setText(QString::number(res));
}

void CacuDialog::mul()
...{
    double res;
    res = editFirst->text().toDouble()*editSecond->text().toDouble();
    editResult->setText(QString::number(res));
}

void CacuDialog::div()
...{
    double res;
    res = editFirst->text().toDouble()/editSecond->text().toDouble();
    editResult->setText(QString::number(res));
}

void CacuDialog::clear()
...{
    editFirst->setText("");
    editSecond->setText("");
    editResult->setText("0");
}

3、main.cpp

/**//*
* 檔案:main.cpp
*    作者:yangdk
* email:jidacun@163.com
*    首頁:http://blog.csdn.net/yang_dk
*/

#include <QApplication>
#include <QtGui>

#include "caculator.h"

int main(int argc, char *argv[])
...{
    QApplication app(argc,argv);
    CacuDialog dialog;
    return dialog.exec();
}

ok!將這三個檔案放在同一個目錄下,進入這個檔案夾,執行下面三句話

qmake -project
qmake
make     //這一局視你的環境而定,可能是make,tmake,nmake

好了,這就產生了可執行檔。直接運行就可以得到上面圖示的結果。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.