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++寫還是遇到了不少的問題,信號連接找了好多方法嘗試才成功,還有中文編碼的問題等等。

 

 

===============================================================================================================

 

Qt是一個功能非常完善的c++跨平台圖形庫,其實與其說圖形庫倒不如說它是一個與MFC類似的應用框架。Qt本身就是使用c++語言實現。

QT理論上是跨平台的,MFC只是windows下的架構。
QT是一個完全的C++程序開發框架,包含類庫和跨平台國際化開發工具。QT API和開發工具對所有支持平台都是一致的,從而可以進行獨立於平台的程序開發和配置。使得跨平台軟件編程直觀、簡易和方便。

QT是一種c++語言的方言。
因為它要使用自己的預處理器處理代碼后,才能用C++編譯器編譯代碼。

qt基於c++語言實現,c++本身只是為開發人員提供了一種編程手段,而Qt正是利用了它實現了一個半成品的應用框架。c++語言自身實現非常復雜,比如多態、繼承、虛函數等語言特性的實現就較為底層,只能由天才級的it人士完成。而Qt相對c++而言屬於高層次的應用,普通的Qt開發人員做的應用程序相對Qt而言又高了一個層此。

qt里的類都是由c++寫的,你用qt編程的時候和c++不同點在於:很大一部分和信號與槽有關的c++代碼不用你自己來寫,是由qt sdk提供的一個程序自動生成的。
總之無論qt自動生成的代碼還是你寫的調用qt的代碼或者qt類庫底層的代碼都是c++。qt開源。

QT是一個高層的類庫,OpenGL是底層的庫。
如果相互調用的話,是QT調用OpenGL。
OpenGL只是負責畫出來一個圖像,可能會細節到設計出來具體哪一個像素怎么畫出來的,至於其他的事情完全不管。
QT則會做更多的事情,比如畫出一個完整的對話框,並且替你把對話框的一些點擊事件、關閉事件處理一下。而且QT畫東西的時候,它並不一定是自己直接畫,多半會通過調用OpenGL等庫來畫出來。
用木頭蓋房子來打比方的話,OpenGL負責幫你把樹種出來,保證木材是結實耐用的。而QT幫你把木材加工好,做成一個木門,保證木門能夠正確地安裝和使用。
你需要的就是把這個做好的木門安裝到你的房子上。

C++中的類,接口在QT中是可以使用的,和在C++中一樣

C++是一個語言,而Qt是一個圖形界面庫(GUI)
除去界面相關操作,實際的編程回歸c++中來。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM