QT學習筆記(六) Qt5主視窗框架示例

2021-09-26 05:53:35 字數 4371 閱讀 6672

#include 

#include

#include

#include

#include

// 1.新增選單:檔案

qmenu *filemenu = ui-

>menubar-

>

addmenu(tr

("檔案(&f)"))

;// 2.新增動作:開啟檔案

qaction *action_new = filemenu-

>

addaction

(qicon

(":/image/images/new.png"),

tr("新建檔案(&n)"))

;// 3.為開啟檔案動作:設定快捷鍵:

action_new-

>

setshortcut

(qkeysequence

("ctrl+n"))

;// 4.獲取工具欄,在工具欄中新增:「新建檔案」動作選單

ui->main*******-

>

addaction

(action_new)

;// 同理

qmenu *editmenu = ui-

>menubar-

>

addmenu(tr

("編輯(&e)"))

;qaction *action_open = editmenu-

>

addaction

(qicon

(":/image/images/open.png"),

tr("開啟檔案(&o)"))

;action_open-

>

setshortcut

(qkeysequence

("ctrl+o"))

;ui-

>main*******-

>

addaction

(action_open)

;

二、建立動作組:並新增包含3個動作選單:左對齊、右對齊、居中

qactiongroup *group =

newqactiongroup

(this);

// 0.建立動作組

qaction *action_l = group-

>

addaction(tr

("左對齊(&l)"))

;// 1.向動作組中新增動作:左對齊

action_l-

>

setcheckable

(true);

// 2.設定動作checkable屬性為true

action_l-

>

setchecked

(true);

// 3.最後指定action_l為選中狀態

qaction *action_r = group-

>

addaction(tr

("右對齊(&r)"))

;action_r-

>

setcheckable

(true);

qaction *action_c = group-

>

addaction(tr

("居中(&c)"))

;action_c-

>

setcheckable

(true);

editmenu-

>

addseparator()

;// 4.向選單中新增間隔器

editmenu-

>

addaction

(action_l)

;// 5.向選單中新增動作:左對齊

editmenu-

>

addaction

(action_r)

;// 6.向選單中新增動作:右對齊

editmenu-

>

addaction

(action_c)

;// 7.向選單中新增動作:居中

三、工具欄中新增其他視窗部件:按鈕,微調框

qtoolbutton *toolbtn =

newqtoolbutton

(this);

// 1.建立qtoolbutton 類物件:toolbtn(工具欄按鈕「顏色」)

ui->main*******-

>

addwidget

(toolbtn)

;// 2.將toolbtn按鈕新增到工具欄

toolbtn-

>

settext(tr

("顏色"))

;// 3.設定toolbtn按鈕名稱

qmenu *colormenu =

newqmenu

(this);

// 4.建立乙個選單 (colormenu)

colormenu-

>

addaction(tr

("紅色"))

;// 新增動作選單:紅色

colormenu-

>

addaction(tr

("綠色"))

;// 新增動作選單:綠色

toolbtn-

>

setmenu

(colormenu)

;// 5.將選單(colormenu)新增進工具欄按鈕(toolbtn「顏色」)中

toolbtn-

>

setpopupmode

(qtoolbutton:

:menubuttonpopup)

;// 設定選單彈出模式

qspinbox *spinbox =

newqspinbox

(this);

// 6.建立qspinbox

ui->main*******-

>

addwidget

(spinbox)

;// 7.向工具欄新增qspinbox部件

四、生成狀態列

//ui->statusbar->showmessage(tr("歡迎使用多文件編輯器"), 5000);     // 1.顯示臨時訊息,顯示2000毫秒即2秒

qlabel *normal_label =

newqlabel

(this);

// 2.建立標籤(用於生成正常訊息)

normal_label-

>

setframestyle

(qframe:

:box | qframe:

:sunken)

; normal_label-

>

settext

("hahahaha");

ui->statusbar-

>

addwidget

(normal_label)

;// 3.新增標籤至狀態列(用於生成正常訊息,可能被臨時訊息覆蓋)

qlabel *permanent =

newqlabel

(this);

// 4.建立標籤(用於生成永久訊息)

permanent-

>

setframestyle

(qframe:

:box | qframe:

:sunken)

;// 5.設定標籤樣式並顯示資訊,

permanent-

>

settext

("www.qter.org");

ui->statusbar-

>

addpermanentwidget

(permanent)

;// 6.然後將其以永久部件的形式新增到狀態列

多文件編輯器:新建乙個文字編輯器部件

qtextedit *edit =

newqtextedit

(this);

// 1.以文字編輯器為中心部件

qmdisubwindow *child = ui-

>mdiarea-

>

addsubwindow

(edit)

;// 2.使用qmdiarea::addsubwindow()函式建立子視窗

child-

>

setwindowtitle(tr

("多文件編輯器子視窗"))

;child-

>

show()

;

QT5 學習筆記一

一 訊號和槽機制 signal slot qt提供了訊號和槽機制用於完成介面操作的響應,是完成任意兩個qt物件之間的通訊機制。訊號會在某個特定情況或動作下被觸發,槽是等同於接收並處理訊號的函式。訊號與槽機制的連線方式 1 乙個訊號可以與另乙個訊號相連 2 同乙個訊號可以與多個槽相連 3 同乙個槽可以...

QT5 學習筆記01

第乙個例項,計算圓的面積 利用qt5 designer實現 第一次例項比較簡單,掌握建立專案的方法以及槽函式的用法即可。使用到的常用函式 1 qstring toint bool ok nullptr,int base 10 第一引數為ok位址,表明轉換成功與否,第二個引數進製 123 123 2 ...

QT5 學習筆記02

第二個例項,計算圓的面積 利用 實現 建立專案時不選擇建立介面選項 建立好後專案中不含有ui designer 物件的位置用布局管理器控制 如 qgridlayout mainlayout 關於槽的相關資料 主視窗中的 如下 include dialog.h include qgridlayout ...