C++ Qt第一個簡單應用
阿新 • • 發佈:2018-12-17
安裝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++寫還是遇到了不少的問題,訊號連線找了好多方法嘗試才成功,還有中文編碼的問題等等。