首先到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_OBJECT public: Clock(QWidget * parent=0); void init(); void layout(); void clock_connect();//connect void 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