Qt Creator學習記錄

2022-10-15 19:51:04 字數 4711 閱讀 5861

1.(1)設定qt顯示中文

qtextcodec::setcodecfortr(qtextcodec::codeforname("utf-8"));-qt4

注:qt5識別utf-8,所以不需要這條**。

(2)qt結構

qt圖形庫是乙個組織嚴謹的c++類庫

3.視窗部件

3.1 widget

(1)qt creator提供的預設基類只有:qmainwindow、qwideget、qdialog。

qmainwindow提供帶選單欄和工具欄的主視窗類。

qdialog是各種對話方塊的基類,而他們全繼承自qwidget。不僅如此,所有的視窗部件都繼承自qwidget。

(2)建立乙個新視窗

qwidget*wdiget=newqwidget;//新建qwidget類物件,預設parent引數是0,所以它是個視窗

qlabel*label=newqlabel;//新建qlabel物件,預設perent引數是0,所以它是個視窗

(3)設定視窗標題

widget->setwindowtitle(qobject::tr("我是widget"));//設定視窗標題

(4)new操作符為label12分配空間,但是並沒有用delete進行釋放。這是因為qt中銷毀父物件的時候會自動銷毀子物件。

(5)顯示視窗資訊

label->settext(qobject::tr(「我是個label視窗」));

(6)設定視窗大小

label->resize(150,20); //150為x座標,20為y座標。

(7)設定視窗位置

label->move(200,100); //200為x座標,100為y座標

(8)更改新建視窗的型別

qwidget*widget=newqwidget(0,qt::dialog|qt::framelesswindowhint);

qlabel*label=newqlabel(0,qt::splashscreen|qt::windowstaysontophint);

qt::dialog:對話方塊型別

qt::splashscreen:歡迎框型別

qt::framelesswindowhint:乙個沒有邊框的視窗

qt::windowstaysontophint:使該視窗停留在所有其他視窗上面

(9)qdebug()函式

qdebug()函式可以將除錯資訊直接輸出到控制台,qt creator中是輸出到應用程式輸出欄。

qdebug()<<"geometry:"

(10) .和->的區別

如果定義如下:

a *p則使用:p->play(); 左邊是結構指標。

a p 則使用: 左邊是結構變數。

總結:箭頭(->):左邊必須為指標;

點號(.):左邊必須為實體

3.2 dialog

(1)對話方塊分為:模態的(modal)和非模態的(modeless)

模態對話方塊:就是在沒關閉它之前,不能與同一應用程式的其他視窗進行互動。

要使乙個對話方塊成為模態對話方塊,只需呼叫它的exec()函式即可。

非模態對話方塊:既可以與它互動,也可以與同一應用程式的其他視窗進行互動。

要建立乙個非模態對話方塊,先用new操作建立,然後用show()函式顯示。

(2)新建乙個qdialog類,this引數

qdialog*dialog=newqdialog(this); //定義了乙個指向qdialog類物件的指標變數,new運算子開闢乙個新的記憶體空間

//dialog->setmodal(true); //新增此程式可以變為模態對話方塊。

dialog->show建立非模態對話方塊

另一種:

qdialog dialog(this);

建立模態對話方塊

(3)setwindowmodality():它有乙個引數來設定模態對話方塊要阻塞的視窗型別。

可以是:qt::nonmodal(不阻塞任何視窗,就是非模態)

qt::windowmodal(阻塞它的父視窗和所有祖先視窗以及它的子視窗)

qt::applicationmodal(阻塞整個應用程式的所有視窗)

而setmodal()函式預設的設定的是qt::applicationmodal.

(4)訊號和槽

標頭檔案中

publicslots://自定義乙個槽,且可以被類外呼叫

voidshowchilddialog();

訊號槽快速宣告方法:手動關聯

單擊showchilddialog()槽,同時按下alt+enter鍵,選擇「在中新增定義」,再按enter。

編輯器就會轉到檔案中,並已建立showchilddialog()

訊號槽的自動關聯:

connect(ui->showchildbutton,signal(clicked()),this,slot(showchilddialog()));

//connect()是qobject類中的函式,signal()、slots()是巨集

(5)顏色對話方塊 qcolordialog

qcolorcolor=qcolordialog::getcolor(qt::red,this,tr("顏色對話方塊"));

getcolor()函式為qcolordialoog的靜態函式,它的3個引數依次是(設定初始顏色、父視窗、對話方塊標題)

//輸出顏色資訊

qdebug()<<"color:"

argb的4個數分別代表透明度(alpha)1.0代表完全透明,0.0代表完全透明

紅色(red)、

綠色(green)、

藍色(blue)。

(6)檔案對話方塊qfiledialog

qstringlistfilenames=qfiledialog::getopenfilenames(this,tr("檔案對話方塊"),"f:",tr("**檔案(*png*jpg)")); //*png*jpg有一空格。

getopenfilename()來獲取檔名,以模態方式執行對話方塊。4個引數的作用分別是:指定父視窗、設定對話方塊標題、指定預設開啟的目錄路徑、

設定檔案型別過濾器。如果不設定過濾器,預設是選擇所有型別的檔案。可以用「;;」來設定不同型別的過濾器。tr("**檔案(*png*jpg);;文字檔案(*txt)")

qdebug()<<"filenames:"

此外,qfiledialog類還提供gets**efilename()函式來實現保持檔案對話方塊和檔案為對話方塊。

getexistingdirectroy()函式來獲取乙個已存在得資料夾路徑。用法與getopenfilename()函式一致。

(7)字型對話方塊qfontdialog

boolok;//標記是否按下了「ok」按鈕

qfontfont=qfontdialog::getfont(&ok,this);

getfont()靜態函式來獲取選擇的字型。第乙個引數是:bool型別變數,用於存放按下的按鈕狀態

if(ok)ui->pushbutton_3->setfont(font);//如果按下「ok」按鈕,那麼讓「字型對話方塊」按鈕使用新字型

(8)輸入對話方塊qinputdialog

qstringstring=qinputdialog::gettext(this,tr("輸入字串對話方塊"),

tr("請輸入使用者名稱:"),qlineedit::normal,tr("admin"),&ok);

if(ok)qdebug()<<"string:"

intvalue1=qinputdialog::getint(this,tr("輸入整數對話方塊"),

tr("請輸入-1000到1000之間的數值"),100,-1000,1000,10,&ok);

if(ok)qdebug()<<"value1:"

//獲取浮點數

doublevalue2=qinputdialog::getdouble(this,tr("輸入浮點數對話方塊"),tr("請輸入-1000到1000之間的數值"),0.00,-1000,1000,2,&ok);

if(ok)qdebug()<<"value2:"

//獲取條目

qstringlistitems定義qstringlist型別的items

items

tr("請選擇乙個條目"),items,0,true,&ok);

if(ok)qdebug()<<"item:"

培訓學習記錄

要想構建民主 平等的師生關係,我們必須明確 教師雖然是 教學的組織者和指導者,是溝通學生和 的橋梁,但是 課程不再是乙個簡單傳授知識的過程,而是乙個以學生為主體,以參與藝術實踐和探索 研究為手段,以培養學生創新精神和實踐能力為目標的師生平等互動的交流過程。在這一過程中,教師要從無限主體轉化為有限主體...

學習記錄未來學習計畫

未來學習計畫 新時期教師應該是什麼樣的教師?有人作了這樣形象素描 具備崇高的師德 廣博的知識 精湛的教藝 健康的心理 強健的體魄。我渴望成為這樣的教師。通過這次寫自培計畫計畫,我又重新審視了自己,解剖了自己,在認真學習領會學校工作計畫的基礎上,我為自己制定的一年發展目標為 一 理論方面 提公升自己的...

個人學習記錄

學員基本資訊 姓名 宋奇學科 語文所屬組別 第一組 各模組個人學習反思 模組最有效的方法 不足之處及其改進方法 學習夥伴的經驗 相對於前一模組的進步 模組1閱讀 討論 思考時間較短 組與組的交流較少。改進方法 增加互動交流,可認同 可反駁 可補充。思想 認識未能得到有效提高。改進 理論和實踐相結合,...