一.qt應用程序全屏顯示
方法1:使用函數setWindowFlags()函數
例:yourwidget->setWindowFlags(Qt::window | Qt::FramelessWindowHint);
(第一個Qt::window表示此widget是窗口類型,第二個參數使用無框架就是沒有標題,狀態欄和邊框)
方法2:使用showFullScreen()函數
例:在窗口對象中加入this->showFullScreen();即可,此方法只對頂級窗口有效。
二.qt觸摸屏隱藏鼠標指針
方法1:運行加參數-nomouse
鼠標指針是沒了,觸摸屏也失效了。
方法2:QWidget::setCursor(QCursor(Qt::BlankCursor)
例:this->setCursor(Qt::BlankCurror);
只希望在某個QWidget(或QDialog等)控件上不出現鼠標指針。其他窗口仍會顯示鼠標指針。
方法3:main函數中調用QApplication::setOverrideCursor(Qt::BlankCurror);
方法4:main()函數加入 #include <QWSServer>,實例化QApplication後,添加QWSServer::setCursorVisible(false);
注意:方法2和3只有在動一下觸摸屏後鼠標纔會消失,第4種在整個程序啓動到運行都不會出現鼠標指針。
3.移動鼠標到屏幕右下角(看不見),簡單實用,但是需要修改qt庫,目前還沒有找到更好的方法:
講一下爲什麼要隱藏鼠標:做爲一般產品很少使用鼠標,都會用小鍵盤或觸摸屏代替,但是做爲調試,維護使用鼠標比其它方式更爲方便,
在產品發佈時,本身產品沒有鼠標,但是qt加入鼠標支持後會在屏幕中心畫一個鼠標指針(不管有沒有接鼠標),極大的影響了界面美觀,所以在沒有鼠標時,
不顯示鼠標,接上鼠標後顯示鼠標。
現在有了思路:鼠標是qt去畫出來的,在啓動qt時通過環境變量export QWS_MOUSE_PROTO="TPanel:/dev/input/event0 USB:/dev/input/mice",
傳入了鼠標設備文件(觸摸屏,鼠標USB:/dev/input/mice),qt會實時讀取此設備文件,獲取相關事件再處理並不斷的重畫鼠標。
通過看qt源碼,設置隱藏鼠標,其實也是畫一個空鼠標指針:
if ( !haveviscurs || !curs )
curs = QWSCursor::systemCursor(BlankCursor);
如果通過隱藏鼠標的方法去實現改動的地方比較多,更爲簡單的辦法是:
找到qt2/src/kernel/qwscursor_qws.cpp文件initializeCursor函數替換藍色部分:
void QWSServer::initializeCursor()
{
// setup system cursors
#ifndef QT_NO_QWS_CURSOR
// qt_screen->initCursor(sharedram + ramlen,TRUE);
// default cursor
cursor = 0;
setCursor(QWSCursor::systemCursor(ArrowCursor));
#endif
#if 0//modify by lxj 2011.08.11
setMouse(QPoint(swidth/2, sheight/2), 0);
#else
setMouse(QPoint(swidth, sheight), 0);
#endif
}
初始化時將鼠標移動到屏幕右下角,看不見,這樣不管有沒有鼠標,都不顯示鼠標指針(qt啓動時也不會顯示鼠標指針),
當接上鼠標時,移動一下,鼠標指針就出來了。
當然如果是想支持熱拔插自動隱藏鼠標,還得想另外的辦法。目前這樣已經可以接受了。