歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 在調用Qt庫來實現功能過程中的一些總結

在調用Qt庫來實現功能過程中的一些總結

日期:2017/3/1 9:25:35   编辑:Linux編程

1.對於QTabWidget中tab名字的變化。當其中只有一個&時,Qt Assistant中給出的解釋是:If the tab's label contains an ampersand, the letter following the ampersand is used as a shortcut for the tab, e.g. if the label is "Bro&wse" then Alt+W becomes a shortcut which will move the focus to this tab。所以要實現tab標題中帶&,則成對輸入即可:"&&"表示"&","&&&&"表示"&&"。

2.對於Qt中的窗口,在使用setParent(0)的時候需要注意的地方:

Linux下QDockWidget彈出來,不想讓原來的窗口為父窗口,設置了setParent(0),彈出來之後無法獲取當前窗口的焦點。因為調用了setParent(0),會移除這個焦點,並且會清楚Qt::Window標記位(只有QMainWind和QDialog會默認有這個flag),所以解決辦法是通過當前的dock_widget->setWindwowFlags(Qt::FramelessWindowHint),來設置其為window的flag。在實際做的時候,dock_widget是自己從QDockWidget派生出來的一個累,沒有使用window框,所以用這個標記位來設置。

很奇怪的是Windows不需要設置也是正常的。

3.關於模態窗口:

在使用QDialog時,若調用show(),則會讓當前窗口成為模態,並且block後面所有得窗口,若想前面窗口和後面窗口同步操作,則可以通過以下2種方法實現(本質上應該算一種):

1)qApp->processEvents();

2)QTimer::singleShot(200, view, SLOT(qApp->processEvents()));//方法2)是之前網上找到的

view->setWindowFlags(Qt::WindowStaysOnTopHint);

其中view為當前窗口。

具體的函數定義可以參考Qt使用手冊,推薦使用第一種方法,因為第二種是一個QTimer時間,要設置時間,這個時間是一個經驗值,不好控制。

Ubuntu 環境下Gtk與QT編譯環境安裝與配置 http://www.linuxidc.com/Linux/2013-08/88539.htm

Linux系統下QT環境搭建 http://www.linuxidc.com/Linux/2013-07/87576.htm

Ubuntu下QT控制台程序無法運行的解決方案以及XTerm的配置方法 http://www.linuxidc.com/Linux/2013-06/86244.htm

Ubuntu 10.04下QT4.7.4移植詳解 http://www.linuxidc.com/Linux/2013-01/77930.htm

Ubuntu 14.04下安裝部署Qt5開發環境 http://www.linuxidc.com/Linux/2014-05/101774.htm

Qt 的詳細介紹:請點這裡
Qt 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved