熱點推薦:
您现在的位置: 電腦知識網 >> 操作系統 >> Windows系統管理 >> 正文

windows7下安裝QT

2013-11-11 21:56:11  來源: Windows系統管理 

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

  clip_image001

  OK然後注銷或者重啟在命令行模式下分別輸入輸入 gcc make qmake看看能否找到

  clip_image002

  如果一切ok可以在d盤下新建一個目錄測試
   
    cd /d d: (這個win就是很賤非要加上一個選項/d)
   
    cd test
   
    建立一個clockcpp文件一個clockh文件內容如下面三個文件
   
    在命令行輸入
   
    qmake project
   
    qmake
   
    make

  clip_image004

  然後就可以執行生成的文件testexe了還有如果不執行上面的環境變量會造成在qtcreate裡面可以編譯成功但是如果你直接到目錄下找到那個exe文件執行時候會提示找不到 wingwdll(媽的可恨本文也是主要解決這個問題來著)……
   
    cd debug
   
    testexe
   
    最終效果是

  clip_image006

  //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 Clockthis) //先定義然後在被trayIcon引用……
   
    quitAct=new QAction(QString::fromLocalBit(Quitthis)
   
    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


From:http://tw.wingwit.com/Article/os/xtgl/201311/9569.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.