成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Qt應用 鍵盤聚焦

移動開發
本文介紹的是Qt應用 鍵盤聚焦,關于聚焦,系統必須要決斷擊鍵動作直接聚焦在哪個應用程序,應用程序的哪個窗口,窗口的哪個部件。先來看內容。

Qt應用 鍵盤聚焦是本文介紹的內容,關于鍵盤的更多內容,請參考本文末尾。Qt的部件按照GUI設計中的慣例來處理鍵盤聚焦

基本的問題就是,用戶的擊鍵動作能夠直接聚焦在屏幕上的任意窗口,或者是內嵌在特定窗口的任意部件上。當用戶按下一個鍵時,他們期望焦點在他們期望的位置,軟件必須要滿足這個需求。系統必須要決斷擊鍵動作直接聚焦在哪個應用程序,應用程序的哪個窗口,窗口的哪個部件。

聚焦動作

鍵盤焦點聚集在一個特定的部件上的慣例有以下幾種:

1、用戶按下Tab(或者Shift+Tab)

2、用戶點擊一個部件

3、用戶按下一個鍵盤快捷鍵

4、用戶使用鼠標滾輪

5、用戶把焦點移動到一個窗口,這時應用程序必須決定窗口的哪個部件應該獲得焦點

以上這些動作機制是不同的,這些動作之中,會有不同的部件接收到焦點。下面將依次介紹:

Tab 或者 Shift+Tab

按下Tab鍵是使用鍵盤移動焦點最常用的方式。(有時在數據錄入型應用程序中Enter的作用和Tab鍵一樣;在Qt中通過一個event filter很容易實現)

在常用的所有窗口系統中按下Tab鍵,每個窗口都有一個包含了其上所有部件的循環列表,焦點會切換到這個列表的下一個部件。Tab鍵會按照循環列表的一個方向切換焦點,而Shift+Tab按照相反的方向切換。按下Tab鍵后在部件之間切換的順序被稱為tab順序。

你可以使用QWidget::setTabOrder()來定制tab順序。(如果你不這樣做,Tab通常會以部件創建的順序切換焦點)Qt Designer提供一種可視化的方式來改變tab順序。

因為按下Tab鍵非常常用,大部分可以獲得焦點的部件都支持tab聚焦。有些罕見的部件是個例外,他們通過一些鍵盤加速器或者錯誤(keyboard accelerator or error)來切換焦點。

舉個例子,在一個數據錄入型對話框中,有一個只有在百分之一的情況下才必要的區域。在這樣的對話框中,Tab鍵就會跳過這個區域,對話框可以使用以下機制:

1、如果程序可以決定這個區域是否需要,它可以在用戶完成錄入按下OK鍵,或者當用戶完成其它區域的錄入之后按下Enter,把焦點切換到那里。或者,將此區域包含在tab順序中但將它禁用。當用戶已經設置完其它的區域,該區域變得比較適合時,再啟用它。

2、此區域上的標簽可以包括一個鍵盤快捷鍵,以使焦點可以切換到此區域上。

關于Tab支持的另外一種例外是必須支持tab插入的文本錄入型部件;幾乎所有的文本編輯器都屬于這一類。Qt把Ctrl+Tab當做Tab,Ctrl+Shift+Tab當做Shift+Tab,這些部件可以重新實現QWidget::event()函數,在調用QWidget::event()完成所有其它按鍵的正常處理之前處理Tab.然而,因為一些系統將Ctrl+Tab用作其它的用途,用戶因此可能不知道Ctrl+Tab,總的來說并沒有一種完全的解決辦法。

用戶點擊部件

這可能是在使用鼠標或者其它點式設備的電腦上比Tab鍵更常見的聚焦方式。

通過點擊來切換焦點比Tab更強大一些。當把焦點移動到某一個部件時,對于編輯型部件而言,文本的光標(部件內部焦點)也會移動到了鼠標點擊的位置點上。

由于這種方式如此的常見,用戶很習慣這種方式,自然而然的應該是大部分部件都支持這種方式。然而,也存在一些需要的理由要規避這種方式:比如用戶可能不想從當前焦點所在的部件上移除焦點。

舉例來說,再一個文本編輯器中,當用戶點擊‘B’(粗體)功能按鈕,鍵盤焦點應該怎么應對?是應該保留在它所在的位置,一般來說這個時候肯定是在編輯文本當中,還是將焦點移動到‘B’按鈕處?

我們建議支持文本錄入的部件同時支持點擊聚焦,為了避免上述情況鼠標點擊在不同的情況下會承擔不同的作用。(對于按鈕來說,我們推薦添加鍵盤快捷鍵,QAbstractButton及其子類可以很容易實現)

在Qt中,只有QWidget::setFocusPolicy()函數會影響點擊聚焦。

用戶按下鍵盤快捷鍵

通過鍵盤快捷鍵來切換焦點不是很常見。在打開模態對話框時會隱式發生,但是如果使用諸如QLabel::setBuddy(),QGroupBox,QTabBar提供的焦點加速器時會明確的發生。

我們建議用戶想要跳轉的所有部件都支持快捷鍵聚焦。舉例來說,一個標簽對話框可以為每個頁面設置鍵盤快捷鍵,因此用戶可以按下比如Alt+P快捷鍵來跳轉到打印頁面。但是按鍵總共就只有那么多,所以為命令提供鍵盤快捷鍵顯得很重要。Alt+P也可以用作粘貼、播放、打印的快捷鍵,比如在Standard Accelerator Keys列表中就這樣用。

用戶滾動鼠標滾輪

在微軟Windows操作系統中,鼠標滾輪往往是由具有鍵盤焦點的部件來處理。在Mac OS X和X11中,則是由獲得其它鼠標事件的部件來處理。

Qt處理這種平臺差異性的方法是當使用滾輪時讓部件切換鍵盤焦點。應用程序遵循每個部件上的正確的聚焦策略,應用程序就可以以慣用的方式在Windows,Mac OS X,和X11平臺上正確的運行。

用戶把焦點移動到窗口

在這種情況下,應用程序必須決定窗口內的哪個部件獲得焦點。

這可能很簡單,如果焦點之前已經在該窗口上,之前獲得焦點的***一個部件會重新獲得焦點。Qt可以自動實現。

如果焦點之前從沒有聚焦到該窗口上,而且你知道焦點應該開始于哪里,在調用QWidget::show()之前調用某部件上的QWidget::setFocus(),該部件就會獲得焦點。如果不這樣做,Qt會挑選一個合適的部件來使它獲得焦點。

小結:關于Qt應用 鍵盤聚焦的內容到這里就介紹完了,希望本文能對你有所幫助。更多相關 內容請參考編輯推薦。

責任編輯:zhaolei 來源: 互聯網
相關推薦

2011-06-29 18:09:57

Qt 矩陣鍵盤

2009-10-14 19:22:30

多路服務器曙光

2012-10-23 17:16:16

企業云寶德云計算

2011-06-22 10:27:32

QT 鍵盤 焦點

2011-06-29 15:14:22

Qt Embedded 鍵盤

2011-06-29 15:36:21

Qt Embedded 鍵盤

2024-07-30 14:40:35

avaScript聚焦應用

2021-07-30 09:53:22

JavaScriptfocusblur

2024-06-21 13:37:09

JavaScript開發

2011-03-22 10:36:27

漢柏行業定制化

2011-09-09 17:59:26

QT Widget

2011-06-21 14:53:25

QT 界面美化 QStyle

2011-06-09 09:12:12

QT symbian

2011-09-07 16:28:46

QT WidgetQWidget

2011-06-15 18:20:20

Qt 移植 Android

2011-09-07 16:36:00

Qt Widget

2010-07-29 10:40:12

2015-05-27 13:29:06

PWorld

2021-08-17 10:26:27

無人機農業安全
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本免费一区二区三区视频 | 精品国产伦一区二区三区观看方式 | 成人亚洲在线 | 亚洲福利网| 成人在线免费观看av | 国产中文字幕在线观看 | 国产精品一区二区在线 | wwww.8888久久爱站网 | 91久久久久久久久久久 | 午夜tv免费观看 | 女人毛片a毛片久久人人 | 久久久久久久久久毛片 | 免费在线精品视频 | 久久久久久中文字幕 | 激情六月丁香婷婷 | 国产精品免费看 | 国产成人网| 懂色中文一区二区三区在线视频 | 亚洲午夜视频 | 久久久精品一区二区三区 | 热久久免费视频 | 午夜影视大全 | 国产成人精品一区二区三区四区 | 成人性生交大片免费看中文带字幕 | 国产精品中文字幕在线播放 | 日日操操 | 国产精品视频入口 | 在线成人免费视频 | 一区二区三区四区不卡 | 国产在线视频三区 | 亚洲天堂中文字幕 | 亚洲综合网站 | 欧美二级 | 中文字幕一区在线观看视频 | 一区二区视频在线 | 精品国产91 | 免费看a| 国产日韩精品一区二区 | 日韩三级 | 最新日韩在线视频 | 日韩精品一区二区三区在线播放 |