首先到QT网站上下载qt安装文件Qt_SDK_Win_offline_v___enexe(G)安装我的目录是C:\ProgramData\Qt 然后下载一个qtwinopensourcemingw(M左右)assistantexe(我在ubuntu上用惯了其实qtcreate里面也有这东西不过没有这个来的爽快…)安装目录C:\ProgramData\Qt\然后我又下载了一个mingw(到sourceforge上下载安装目录C:\ProgramData\Qt\mingw\mingw 这个也许不要不过安装都已经安装了不知道是不是必要的……) 这时候可能会提示找不到g++不管继续安装 安装完毕调整环境变量添加 PATH C:\ProgramData\Qt\bin\;C:\ProgramData\Qt\mingw\bin\; QMAKESPEC wing++ QTDIR C:\ProgramData\Qt\ OK然后注销或者重启在命令行模式下分别输入输入 gcc make qmake看看能否找到 如果一切ok可以在d盘下新建一个目录测试 cd /d d: (这个win就是很贱非要加上一个选项/d) cd test 建立一个clockcpp文件一个clockh文件内容如下面三个文件 在命令行输入 qmake project qmake make 然后就可以执行生成的文件testexe了还有如果不执行上面的环境变量会造成在qtcreate里面可以编译成功但是如果你直接到目录下找到那个exe文件执行时候会提示找不到 wingwdll(妈的可恨本文也是主要解决这个问题来着)…… cd debug testexe 最终效果是 //clockh #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=) 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 //clockcpp #includeclockh Clock::Clock(QWidget * parent)QDialog(parent) { init() layout() clock_connect() } void Clock::init() { setWindowTitle(Clock)//设置标题 setFixedSize(QSize())//固定大小 timer=new QTimer;//控制lcd的时间刷新 lcdNumber=new QLCDNumber;//显示当前时间 lcdNumber>setFixedSize(QSize())//固定大小 lcdNumber>setNumDigits()//显示八个数字默认是显示个数字 lcdNumber>display(QTime::currentTime()toString(hh:mm:ss))//设置格式还有其他形式的 button=new QPushButton(Quit) trayIcon=new QSystemTrayIcon; trayIcon>show() trayIcon>setIcon(QIcon(/images/qmeico)) restoreAct=new QAction(QString::fromLocalBit(Show Clock)this) //先定义然后在被trayIcon引用…… quitAct=new QAction(QString::fromLocalBit(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() button>resize() button>show() }; void Clock::clock_connect() { connect(timerSIGNAL(timeout())thisSLOT(clockChange())) timer>start() connect(buttonSIGNAL(clicked())thisSLOT(mini())) }; // ************** // 显示变化的时间 // ************** void Clock::clockChange() { lcdNumber>display(QTime::currentTime()toString(hh:mm:ss)) } void Clock::mini() { hide() } void Clock::closeEvent(QCloseEvent *event) { QMessageBox::information(QuitAre you sure exit the Application!) } //end //maincpp #includeclockh #include<QApplication> int main(int argcchar *argv[]) { QApplication app(argcargv) Clock clock; clockshow() return appexec() }; //end |