自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

分析Qt Symbian手機(jī)應(yīng)用移植注意事項(xiàng)

移動(dòng)開發(fā)
在QStackedWidget/QStackedLayout中的當(dāng)前顯示視圖發(fā)生變化時(shí),會發(fā)出一個(gè)currentChanged(int)的信號,開發(fā)者可以利用這個(gè)信號去吃執(zhí)行相應(yīng)的操作.詳情以下內(nèi)容。

本文介紹的是關(guān)于分析Qt Symbian手機(jī)應(yīng)用移植注意事項(xiàng),做過移植的朋友們應(yīng)該了解,在移植過程中,出現(xiàn)很多的問題,那么本文將會幫你分析問題的原因。

 在Linux和Windows上做過開發(fā)的朋友,可能會發(fā)現(xiàn)在把應(yīng)用移植手機(jī)上的時(shí)候,不是那么符合手機(jī)上的用戶使用習(xí)慣。而且很多培訓(xùn)教材在講授Qt 的時(shí)候也是針對桌面應(yīng)用的,對于初學(xué)者如果依照培訓(xùn)材料上的例子直接編譯成手機(jī)版本,也會碰到這個(gè)問題。在此我把幾個(gè)經(jīng)常碰到的問題整理一下。

QWidget 還是QMainWindow

QMainWindow和QWidget的區(qū)別是QMainWindow包含工具欄、狀態(tài)欄以及 菜單等,對于手機(jī)應(yīng)用來說可見的最大區(qū)別是菜單,也就是左下角的那個(gè)”Options”選項(xiàng)。

分析Qt Symbian手機(jī)應(yīng)用移植注意事項(xiàng)

所以,如果你的應(yīng)用較復(fù)雜,需要用到菜單處理的時(shí)候請使用QMainWindow做為你應(yīng)用的主窗 口。使用QMainWindow的時(shí)候,初學(xué)者往往會碰到另一個(gè)問題,就是在往QMainWindow里增加新的控件,并使用QLayout來管理這些控 件的時(shí)候,經(jīng)常不能成功。原因是QMainWindow有它自己的布局管理器,如果需要在QMainWindow中增加新控件和布局時(shí),可以通過 QMainWindow::setCentralWidge(QWidget *)給QMainWindow的主界面設(shè)定一個(gè)QWidget *cw,然后在cw中定義自己的布局和控件。

定制Options菜單

可以通過QMainWindow::newMenuBar()函數(shù)獲得主窗口的菜單欄(如果沒有菜單欄,則創(chuàng)建一個(gè)并返回 指針),為菜單欄增加子項(xiàng)可以用addMenu()或者addAction().如果沒有子菜單項(xiàng)推薦直接使用addAction,因?yàn)槿绻鸔Menu無 法直接對外部事件做出響應(yīng)。

分析Qt Symbian手機(jī)應(yīng)用移植注意事項(xiàng)

定制系統(tǒng)softkey內(nèi)容

在一個(gè)應(yīng)用有多個(gè)視圖的時(shí)候,如果系統(tǒng)的softkey(就是屏幕下邊的軟鍵)總是顯示”Options”和”Exit”則無法應(yīng)用需求,比如離開主界面后, 需要將”Exit“變成”Back”。通過將一個(gè)QACtion的setSoftKeyRole()函數(shù)可以將QAction綁定到softkey上,同 時(shí)QAction的文本/text()也會顯示到softkey上。當(dāng)前softkey的上下文和當(dāng)前具有輸入焦點(diǎn)的控件相關(guān)。

分析Qt Symbian手機(jī)應(yīng)用移植注意事項(xiàng)

如果需要給定制的softkey增加子選項(xiàng),則可以通過QAction::setMenu()來實(shí) 現(xiàn)。

分析Qt Symbian手機(jī)應(yīng)用移植注意事項(xiàng)

窗口最大化

大部分的”Hello,World”例子里有使用了show()函數(shù)來讓窗口顯示,但是在手機(jī)系統(tǒng)上,我推薦使用showMaximized(),也就是最大 化。

這樣做首先保證了窗體被顯示出來的時(shí)候,屏幕上的 背景部分還有其它應(yīng)用露出來,容易導(dǎo)致誤操作

分析Qt Symbian手機(jī)應(yīng)用移植注意事項(xiàng)

此外,如果使用了showMaximized(),在手機(jī)從橫向放置變成豎向放置時(shí)(或反之),手 機(jī)屏幕變化時(shí),應(yīng)用窗口也會自動(dòng)進(jìn)行調(diào)整。而如果使用的是show()函數(shù),在手機(jī)水平位置發(fā)生變化時(shí),應(yīng)用窗口還是保留原來的大小,有可能導(dǎo)致窗口超出 屏幕,或在屏幕上留下沒有覆蓋的區(qū)域。

分析Qt Symbian手機(jī)應(yīng)用移植注意事項(xiàng)

多窗口應(yīng)用開發(fā)

復(fù)雜的應(yīng)用會有多 個(gè)視圖,如果在桌面系統(tǒng)上開發(fā)我們可以選擇在一個(gè)QMainWindow里通過MDI管理多個(gè)子窗口,但是對于手機(jī)屏幕空間相對局限的情況下并不是很適 合,手機(jī)應(yīng)用需要在每個(gè)視圖都保持最大的界面空間,通過某種方法實(shí)現(xiàn)不同視圖直接的切換是比較好的方法。

QSatckedWidget和 QStackedLayout

分析Qt Symbian手機(jī)應(yīng)用移植注意事項(xiàng) 

分析Qt Symbian手機(jī)應(yīng)用移植注意事項(xiàng)

要管理多個(gè)視圖的切 換,Qt提供了兩個(gè)方便的類。QStackedWidget和QSatckedLayout,區(qū)別在于QSatckedWidet繼承于QWidget是 可視控件,而QStackedLayout繼承于QLayout,僅僅負(fù)責(zé)布局。

分析Qt Symbian手機(jī)應(yīng)用移植注意事項(xiàng)

每個(gè)被加入到QStackedWidget或QStackedLayout的控件視圖都會獲得一個(gè) 索引號(index),QStackedWidget或QStackedLayout可以通過setCurrentIndex來指定當(dāng)前被顯示的是哪一個(gè) 控件視圖。

分析Qt Symbian手機(jī)應(yīng)用移植注意事項(xiàng)

在QStackedWidget/QStackedLayout中的當(dāng)前顯示視圖發(fā)生變化時(shí),會發(fā) 出一個(gè)currentChanged(int)的信號,開發(fā)者可以利用這個(gè)信號去吃執(zhí)行相應(yīng)的操作,比如更新當(dāng)前的上下文菜單或softkey(前面小節(jié) 有介紹),以及根據(jù)當(dāng)前視圖更改窗口標(biāo)題等。

分析Qt Symbian手機(jī)應(yīng)用移植注意事項(xiàng)

小結(jié):關(guān)于Qt Symbian手機(jī)應(yīng)用移植注意事項(xiàng)的內(nèi)容講完了,以上也是我們常見的問題,希望本文對你有引導(dǎo)性的幫助。

責(zé)任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2009-12-21 09:53:45

連接Oracle

2011-07-04 17:55:59

Qt SDK Windows

2011-06-29 09:56:29

QT UI 動(dòng)態(tài)加載

2020-10-20 14:05:48

用戶需求分析IT

2015-09-07 09:27:01

分析應(yīng)用場景

2011-06-15 13:39:55

Qt Creator

2011-08-03 11:40:49

布線系統(tǒng)

2011-05-26 11:22:04

SEO

2009-12-15 17:47:17

VSIP

2014-01-13 10:50:28

虛擬化存儲

2009-12-16 15:41:10

Ruby on Rai

2011-04-11 16:23:57

2010-05-07 10:19:48

Oracle 注意事項(xiàng)

2010-07-29 10:27:30

Flex鍵盤事件

2014-07-01 12:49:06

Android Stu安裝

2011-06-28 16:05:12

Qt widget 圖片

2011-05-11 17:09:03

jsp

2021-09-28 08:59:40

UPS蓄電池電源

2011-06-16 15:17:16

2010-02-05 14:13:17

Android平臺
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號