1. 程式人生 > >C++ Qt第一個簡單應用

C++ Qt第一個簡單應用

安裝Qt方法
安裝準備:1. qt-win-opensource-4.8.4-mingw.exe
       	      2. qt-creator-win-opensource-2.5.0.exe
        	      3. MinGW-gcc440_1(非常重要,安裝成功與否靠它了)
          注意:這個Qt在XP和win7均能正常使用的!
開始安裝
步驟一:
          先把所有的壓縮包解壓出來,然後把MinGW-gcc440_1.zip解壓出來的mingw檔案包剪下到C盤根目錄中(當然你解壓的時候可以直接選擇解壓到C盤)。注意:一定要把它放在C盤根目錄中,否則你是百分之一萬是安裝不成功的!
    

步驟二:
       (1)點選qt-win-opensource-4.8.4-mingw.exe 進行安裝,這是一個類庫來的,下面就等一下吧!
              
        (2)load完之後一直按next就行了。最後來到某個介面,你直接按install就行了,接著就是漫長的等待。注意:這個Qt所有的東西都要安裝在C盤,不要隨意更改路徑,佔你2G而已,否則的話可能安裝不成功的,本人沒有實驗過,如果你有興趣可以試一下。
  

步驟二:
        (1)點選qt-creator-win-opensource-2.5.0.exe把creator安裝了,其實這只是一個開發環境而已,簡單來說就是一個編寫程式碼的地方,就像visual C++ 6.0一樣。其實不用這個環境,用VC2008也可以的,大家有興趣可以嘗試一下。
             
      
       (2)還是那句話,直接按next,不要該路徑,在最後的介面,不要把勾去掉,按finish,然後creator就啟動了。
   
         現在還不能用的,要設定一下環境變數。自己百度一下吧。

main.cpp

#include <QApplication>
#include "widget.h"
#include <QTextCodec>
/*void MyApplication::showMinimizedClick()
{
    this->showMinimized();
}*/
int main(int argc, char *argv[])
{
        QTextCodec *codec = QTextCodec::codecForName("GBK");//ַי¿צ2
        QTextCodec::setCodecForTr(codec);
        QTextCodec::setCodecForLocale(codec);
        QTextCodec::setCodecForCStrings(codec);


        QApplication a(argc, argv);
        Widget w;
        w.show();
        return a.exec();
}

widget.cpp

#include "widget.h"
#include <QtGui>
#include <QObject>
#include <QTextCodec>
Widget::Widget(QWidget *parent)
    : QWidget(parent)
{

    edit1 = new QLineEdit;
    edit2 = new QLineEdit;
    label1 = new QLabel;
    label2 = new QLabel;
    btn1 = new QPushButton;
    btn2 = new QPushButton;

    label1->setText(tr("姓名"));
    label2->setText(tr("年齡"));
    btn1->setText(tr("確定"));
    btn2->setText(tr("取消"));

    QVBoxLayout *layout_main = new QVBoxLayout(this);
    QHBoxLayout *layout1 = new QHBoxLayout();
    QHBoxLayout *layout2 = new QHBoxLayout();
    QHBoxLayout *layout3 = new QHBoxLayout();

    layout1->addWidget(label1);
    layout1->addWidget(edit1);
    layout2->addWidget(label2);
    layout2->addWidget(edit2);
    layout3->addWidget(btn1);
    layout3->addWidget(btn2);

    layout_main->addLayout(layout1);
    layout_main->addLayout(layout2);
    layout_main->addLayout(layout3);

    //connect(btn1, &QPushButton::clicked, this, &Widget::showFileDialog);
    connect(btn1, SIGNAL(clicked()), this, SLOT(showFileDialog()));

    //QObject::connect(btn1,&QPushButton::clicked,this,&Widget::showFileDialog);
}

void Widget::showFileDialog()
{
    // 獲取開啟的檔案對話方塊中選中的檔案的名稱,getOpenFileName()函式
    QString s = QFileDialog::getOpenFileName(this, "open file dialog", "/");

    // 將獲取到的名稱新增到編輯框中
    edit1->setText(s);
}


void Widget::clickedSlots2()
{
    edit2->setText("333333333333");
}
Widget::~Widget()
{
    
}

widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QDialog>
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>

class Widget : public QWidget
{
    Q_OBJECT
    
public:
    Widget(QWidget *parent = 0);
    ~Widget();
private:
    QLineEdit *edit1, *edit2;
    QLabel *label1, *label2;
    QPushButton *btn1, *btn2;
private slots:
   void showFileDialog();
   void clickedSlots2();


};

#endif // WIDGET_H

在這裡插入圖片描述

在這裡插入圖片描述

雖然用python寫了很多的介面,但是用c++寫還是遇到了不少的問題,訊號連線找了好多方法嘗試才成功,還有中文編碼的問題等等。