Qt中对main.cpp的代码解释
生活随笔
收集整理的這篇文章主要介紹了
Qt中对main.cpp的代码解释
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include "mywidget.h"
#include <QApplication> // 包含一個應用程序類的頭文件// main程序入口,argc命令行變量的數量,argv命令行變量的數組
int main(int argc, char *argv[])
{// a應用程序對象,在qt中,應用程序對象有且僅有1個QApplication a(argc, argv);// 窗口對象,父類為QWidgetmyWidget w;// 窗口對象默認不會顯示,必須調用show方法w.show();// 讓a進入消息循環,不會一閃而過,讓代碼阻塞到這行return a.exec();
}
QT += core gui
// Qt包含的模塊
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
// 大于4版本以上包含widget模塊
TARGET = qt2
// 目標 生成的.exe程序的名稱
TEMPLATE = app
// 應用程序模板
SOURCES += \main.cpp \mywidget.cpp// 源文件
HEADERS += \mywidget.h// 頭文件
#ifndef MYWIDGET_H
#define MYWIDGET_H
#include <QWidget>
// 包含頭文件QWidget 窗口類
class myWidget : public QWidget
{Q_OBJECT// 宏,允許類中使用信號與槽機制
public:myWidget(QWidget *parent = 0);// 帶參數的構造函數~myWidget();// 析構函數
};
#endif // MYWIDGET_H
命名規范
類名:首字母大寫,單詞和單詞之間首字母大寫
函數名/變量名:首字母小寫,單詞和單詞之間首字母大寫快捷鍵
注釋:ctrl+/
運行:ctrl+run
編譯:ctrl+build
查找:ctrl+find
整行移動:ctrl+shift+↑/↓
幫助文檔:
(1)F1
(2)左側圖標
(3)assistant
F1全屏
Esc退出全屏
Esc退出幫助文檔
自動對齊:ctrl+i
同名之間的.h和.cpp的切換:F4
創建第一個按鈕
QPushButton *btn = new QPushButton();
// btn->show();
// show是以頂層的方式彈出窗口控件
// 讓btn對象依賴在mywidget窗口中
btn->setParent(this); //設置到對象樹中
// 顯示文本
btn->setText("XXX");創建第二個按鈕:按照控件大小創建窗口
QPushButton *btn = new QPushButton(“XXX”,this);
// 重置窗口大小
resize(600,400);
// 移動第二個按鈕
btn->move(100,100);
//設置窗口標題
setWindowTitle("First");
// 設置固定窗口大小
setFixedSize(600,400);
打印和釋放的順序是不一樣的
對象樹:當創建的對象在堆區的時候,如果指定的父親是QObject派生下來的類或者QObject子類派生下來的類,可以不用管理釋放的操作,對象會放入到對象樹當中,在一定程度上簡化了內存回收機制
自定義信號
寫到signal下
返回值是void,只需要聲明,不需要實現
可以有參數
可以重載槽函數
早期必須寫到public slots下
高級的版本可以寫到public或者全局下
返回值為void,需要聲明,也需要實現
可以有參數,可以發生重載
拓展
信號可以連接信號
一個信號可以連接多個槽函數
多個信號可以連接一個槽函數
信號與槽函數的參數必須類型一一對應
信號參數個數可以多于槽函數的參數個數
Qt4版本以前的連接
使用SIGNAL()以及SLOT
優點:參數直觀
缺點:參數類型不做檢測
Qt5以上支持Qt4版本的寫法,反之不支持
Lambda
Qt4:
CONGIG+=C++11
總結
以上是生活随笔為你收集整理的Qt中对main.cpp的代码解释的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaScript权威指南--客户端存
- 下一篇: BZOJ3626 LNOI2014 LC