windows7下安装QT

Posted on 2012-02-28 11:42  lxjlzc  阅读(3167)  评论(0编辑  收藏  举报

首先到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\

clip_image001

OK然后注销或者重启在命令行模式下分别输入输入 gcc make qmake看看能否找到

clip_image002

如果一切ok,可以在d盘下新建一个目录测试

cd /d d: (这个win7就是很贱非要加上一个选项/d)

cd test

建立一个clock.cpp文件一个clock.h文件,内容如下面三个文件

在命令行输入

qmake -project

qmake

make

clip_image004

然后就可以执行生成的文件test.exe了,还有如果不执行上面的环境变量会造成在qtcreate里面可以编译成功但是如果你直接到目录下找到那个exe文件执行时候会提示找不到 wingw10.dll(妈的可恨,本文也是主要解决这个问题来着)...............................

cd debug

test.exe

最终效果是:clip_image006

//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

Copyright © 2024 lxjlzc
Powered by .NET 8.0 on Kubernetes