轉帖|使用教程|編輯:鮑佳佳|2020-07-28 16:40:21.223|閱讀 232 次
概述:此為一個系列的關于qt小部件的入門教程,在本主題中,我們通過使用C ++和Qt Widgets模塊實現一個簡單的記事本應用程序來教授基本的Qt知識。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
Qt是目前最先進、最完整的跨平臺C++開發工具。它不僅完全實現了一次編寫,所有平臺無差別運行,更提供了幾乎所有開發過程中需要用到的工具。如今,Qt已被運用于超過70個行業、數千家企業,支持數百萬設備及應用。
記事本頭文件
該向導為Notepad類生成了一個頭文件,該頭文件具有必要的#include,構造函數,析構函數和Ui對象。該文件如下所示:
#includenamespace Ui { class Notepad; } class Notepad : public QMainWindow { Q_OBJECT public: explicit Notepad(QWidget *parent = nullptr); ~Notepad(); private slots: void newDocument(); void open(); void save(); void saveAs(); void print(); void exit(); void copy(); void cut(); void paste(); void undo(); void redo(); void selectFont(); void setFontBold(bool bold); void setFontUnderline(bool underline); void setFontItalic(bool italic); void about(); private: Ui::Notepad *ui; QString currentFile; };
以下行包括QMainWindow,它提供一個主應用程序窗口:
#include < QMainWindow >
以下各行在Ui名稱空間中聲明Notepad類,該名稱空間是該uic工具從.ui文件生成的UI類的標準名稱空間:
namespace Ui { class Notepad; }
類聲明包含Q_OBJECT宏。它必須在類定義中排在首位,并將我們的類聲明為QObject。自然,它還必須繼承自QObject。一個QObject中增加了一些能力,以一個普通的C ++類。值得注意的是,類名稱和插槽名稱可以在運行時查詢。也可以查詢插槽的參數類型并調用它。
class Notepad : public QMainWindow { Q_OBJECT
以下幾行聲明了一個構造函數,該構造函數的默認參數為parent。值0表示該窗口小部件沒有父級(它是頂級窗口小部件)。
public: explicit Notepad(QWidget *parent = nullptr);
以下行聲明了一個虛擬析構函數,以釋放對象在其生命周期中獲取的資源。根據C ++命名約定,析構函數與其關聯的類具有相同的名稱,并以波浪號(?)為前綴。在QObject中,析構函數是虛擬的,以確保當通過指向基類的指針刪除對象時,派生類的析構函數被正確調用。
~Notepad();
以下各行聲明一個成員變量,該變量是指向記事本UI類的指針。成員變量與特定的類相關聯,并且可用于其所有方法。
private: Ui::Notepad *ui; QString currentFile;
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: