日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Qt学习笔记(一) 第一个Qt应用程序

發(fā)布時間:2025/3/15 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt学习笔记(一) 第一个Qt应用程序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

使用Qt Creator向導創(chuàng)建一個QtGui應用程序,會生成一個.pro工程定義文件和幾個.h/.cpp源代碼文件。

?

首先看工程定義文件的內容:

QT?????? += core gui

TARGET = firstQtApp

TEMPLATE = app

SOURCES += main.cpp/

??????? mainwindow.cpp

HEADERS? += mainwindow.h

?

QT += 表示需要加載的庫模塊。Core模塊是每個Qt應用程序都需要的。因為這是一個Gui程序,所以加載了Gui模塊。

TARGET = 表示編譯后可執(zhí)行程序的名稱。

TEMPLATE = 表示應用程序的類型。這里是一個app程序。還可以是lib等。

SOURCES += 表示添加到工程里的源代碼文件。

HEADERS += 表示添加到工程里的頭文件。

?

再來看main.cpp里面的內容。這里面只有整個程序的主函數。代碼如下:

#include<QtGui/QApplication> #include"mainwindow.h" ? intmain(intargc,char*argv[]) { ??? QApplicationa(argc,argv); ??? MainWindoww; ??? w.show(); ??? returna.exec(); }

?

這段代碼是由Qt Creator向導自動生成的。

第一步先創(chuàng)建了一個QApplication的對象。每個Qt 應用程序都必須有一個QApplication的對象。這個對象代表的就是這個應用程序本身。而且每個應用程序只允許有一個QApplication的對象。構造函數需要兩個參數,這是Qt對命令行參數的支持。

第二步創(chuàng)建了主窗口對象。窗口/窗口部件是UI中的可視化元素,叫做widget。這相當于windows中的控件和容器。

第三步調用w.show()使窗口可見。

最后調用a.exec()將程序控制權交給Qt,程序開始進入事件循環(huán),等待用戶操作。

?

再來看MainWindow里面的代碼:

首先是類聲明:

#include<QtGui/QMainWindow>

#include<QLabel>

#include<QPushButton>

?

classMainWindow:publicQMainWindow

{

??? Q_OBJECT

public:

??? MainWindow(QWidget*parent=0);

??? ~MainWindow();

??? //datamembers

private:

??? QLabel*label;

??? QPushButton*pushButton;

};

這個類繼承自QMainWindow。由于定義了自己的信號和槽,所以在類的開頭使用了Q_OBJECT宏。然后聲明了兩個窗口部件作為數據成員,QLabel和QPushButton。

類的實現代碼:

#include"mainwindow.h"

#include<QVBoxLayout>

?

MainWindow::MainWindow(QWidget*parent)

??? :QMainWindow(parent)

{

??? label=newQLabel(tr("ThisismyfirstQtApplication"));

pushButton=newQPushButton(tr("Exit"));

?

??? QVBoxLayout*layout=newQVBoxLayout;

??? layout->addWidget(label);

??? layout->addWidget(pushButton);

??? connect(pushButton,SIGNAL(clicked()),

??????????? this,SLOT(close()));

?

??? QWidget*widget=newQWidget(this);

??? widget->setLayout(layout);

??? setCentralWidget(widget);

}

?

首先構造了兩個窗口部件,使用布局管理中的QVBoxLayout(垂直布局),將兩個部件添加到layout里面,從而布局這兩個部件。然后將pushButton的clicked()信號和當前窗口的close()槽連接起來。當用戶點下Button的時候,窗口的close()槽便會調用,從而關閉窗口。信號和槽有點類似于MFC中的消息映射。

然后使用一個widget來承載設置好的layout,最后將widget和窗口綁定。

?

總結

以上是生活随笔為你收集整理的Qt学习笔记(一) 第一个Qt应用程序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。