首先到QT網站上下載qt安裝檔案Qt_SDK_Win_offline_v1_1_3_en.exe(1.4G)安裝我的目錄是C:\ProgramData\Qt
然後下載一個qt-win-opensource-4.7.4-mingw(300M左右)assistant.exe(我在ubuntu上用慣了,其實qtcreate裡面也有這東西,不過沒有這個來的爽快...)安裝目錄C:\ProgramData\Qt\然後我又下載了一個mingw(到sourceforge上下載安裝目錄C:\ProgramData\Qt\mingw\mingw 這個也許不要,不過安裝都已經安裝了,不知道是不是必要的.....)
這時候可能會提示找不到g++不管繼續安裝
安裝完畢調整環境變數添加:
PATH C:\ProgramData\Qt\bin\;C:\ProgramData\Qt\mingw\bin\;
QMAKESPEC win32-g++
QTDIR C:\ProgramData\Qt\
OK然後登出或者重啟在命令列模式下分別輸入輸入 gcc make qmake看看能否找到
如果一切ok,可以在d盤下建立一個目錄測試
cd /d d: (這個win7就是很賤非要加上一個選項/d)
cd test
建立一個clock.cpp檔案一個clock.h檔案,內容如下面三個檔案
在命令列輸入
qmake -project
qmake
make
然後就可以執行產生的檔案test.exe了,還有如果不執行上面的環境變數會造成在qtcreate裡面可以編譯成功但是如果你直接到目錄下找到那個exe檔案執行時候會提示找不到 wingw10.dll(媽的可恨,本文也是主要解決這個問題來著)...............................
cd debug
test.exe
最終效果是:
//clock.h
#ifndef CLOCK_H#define CLOCK_H#ifndef ALARM_H#define ALARM_H#include<QApplication>#include<QTimer>#include<QLCDNumber>#include<QLabel>#include <QVariant>#include<QTimeEdit>#include<QPushButton>#include<QDialog>#include <QMessageBox>#include<QSystemTrayIcon>#include<QAction>#include<QMenu>class Clock:public QDialog{Q_OBJECTpublic:Clock(QWidget * parent=0);void init();void layout();void clock_connect();//connectvoid closeEvent(QCloseEvent *event);public slots:void clockChange();void mini();private:QTimer * timer;QLCDNumber * lcdNumber;//顯示目前時間QPushButton *button;QSystemTrayIcon *trayIcon;QAction * restoreAct;QAction * quitAct;QMenu * trayIconMenu;//QRect rect;};#endif#endif // CLOCK_H
//clock.cpp
#include"clock.h"Clock::Clock(QWidget * parent):QDialog(parent){init();layout();clock_connect();}void Clock::init(){setWindowTitle("Clock");//設定標題setFixedSize(QSize(200,60));//固定大小timer=new QTimer;//控制lcd的時間重新整理lcdNumber=new QLCDNumber;//顯示目前時間lcdNumber->setFixedSize(QSize(150,50));//固定大小lcdNumber->setNumDigits(8);//顯示八個數字,預設是顯示5個數字lcdNumber->display(QTime::currentTime().toString("hh:mm:ss"));//設定格式,還有其他形式的button=new QPushButton("Quit");trayIcon=new QSystemTrayIcon;trayIcon->show();trayIcon->setIcon(QIcon("./images/qme.ico"));restoreAct=new QAction(QString::fromLocal8Bit("Show Clock"),this); //先定義然後在被trayIcon引用.....quitAct=new QAction(QString::fromLocal8Bit("Quit"),this);trayIconMenu=new QMenu;trayIconMenu->addAction(restoreAct);trayIconMenu->addAction(quitAct);trayIcon->setContextMenu(trayIconMenu);}void Clock::layout(){lcdNumber->setParent(this);lcdNumber->show();button->setParent(this);button->move(160,10);button->resize(30,20);button->show();};void Clock::clock_connect(){connect(timer,SIGNAL(timeout()),this,SLOT(clockChange()));timer->start(1000);connect(button,SIGNAL(clicked()),this,SLOT(mini()));};// **************// 顯示變化的時間// **************void Clock::clockChange(){lcdNumber->display(QTime::currentTime().toString("hh:mm:ss"));}void Clock::mini(){hide();}void Clock::closeEvent(QCloseEvent *event){QMessageBox::information(0,"Quit","Are you sure exit the Application!");}//end//main.cpp#include"clock.h"#include<QApplication>int main(int argc,char *argv[]){QApplication app(argc,argv);Clock clock;clock.show();return app.exec();};
//end
http://www.cnblogs.com/lxjlzc/archive/2012/02/28/2371269.html