QT中涉及到資料傳遞的幾種情況分析

2021-08-03 19:39:28 字數 1574 閱讀 7627

qt版本:qt creator 5.4.0_mingw

1、同一類

同一物件 的資料傳遞

類中的資料成員可以被同一類中的任何乙個函式訪問。直接在類中宣告資料成員即可

注意:在.h檔案的類中宣告成員,並且在.cpp檔案的函式中例項化乙個物件,然後通過物件名( 用".") 訪問

2、同一類 

不同物件 的資料傳遞

在類中把資料成員宣告為靜態,即新增關鍵字"static",通過::訪問

3、不同類之間的資料傳遞

例子:用乙個類函式呼叫另乙個類成員的方法(不在main函式裡寫程式)  很關鍵**

mainwindow類的成員函式show(),去呼叫form類的資料成員vec(vec是乙個qvector容器)

首先在form.h標頭檔案中宣告變數 qvectorvec;

#ifndef form_h

#define form_h

#include class form

;#endif // form_h

然後在form.cpp檔案中,給變數賦值;

兩種賦值方法:第一種,直接在建構函式form()裡面賦初值;第二種,在form類的成員函式set()裡面賦值

第一種:那麼show()函式中,直接訪問資料,不用任何函式呼叫

form::form()  //建構函式初始化變數

第二種:set()函式是作為變數賦值函式,如果在mainwindow類中的函式show()不呼叫它set(),建構函式也沒有初始化vec,那麼最後列印的vec肯定是亂碼的。所以建構函式為空的話,set()函式必須被呼叫

void form::set()  //另外的函式初始化vec

然後在mainwindow.h檔案中包含form類的標頭檔案form.h,並且宣告呼叫函式show();

#ifndef mainwindow_h

#define mainwindow_h

#include #include //包含標頭檔案

namespace ui

class mainwindow : public qmainwindow

;#endif // mainwindow_h

最後在mainwindow.cpp檔案中,例項化物件,,列印被呼叫成員vec的值。

#include "mainwindow.h"

#include "ui_mainwindow.h"

#include mainwindow::mainwindow(qwidget *parent) :

qmainwindow(parent),

ui(new ui::mainwindow)

mainwindow::~mainwindow()

void mainwindow::show()

整個過程下來,沒有在main函式裡面寫任何程式,這就是我要達到的效果:類之間的資料呼叫,卻不驚動main函式

JavaScript中涉及到的RegExp型別

正規表示式 由一些普通字元和特殊字元組成的,用以描述一種特定的字元規則的表示式,它是用來限制使用者在網際網路中輸入的規則 建立正規表示式 var 變數名 正規表示式的內容 修飾符 var reg 123456789 i var 變數名 new regexp 正規表示式的內容,修飾符 var reg ...

PHP開發中涉及到emoji表情的幾種處理方法

一般mysql表設計時,都是用utf8字符集的。把帶有emoji的暱稱字段往裡面insert一下就沒了,整個字段變成了空字串。這是怎麼回事呢?原來是因為mysql的utf8字符集是3位元組的,而emoji是4位元組,這樣整個暱稱就無法儲存了。這要怎麼辦呢?我來介紹幾種方法 1 使用utf8mb4字符...

PHP開發中涉及到emoji表情的幾種處理方法

一般mysql表設計時,都是用utf8字符集的。把帶有emoji的暱稱字段往裡面insert一下就沒了,整個字段變成了空字串。這是怎麼回事呢?原來是因為mysql的utf8字符集是3位元組的,而emoji是4位元組,這樣整個暱稱就無法儲存了。這要怎麼辦呢?我來介紹幾種方法 如果你的mysql版本 5...