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

Qt學習之路 詳解 下篇

移動開發
本文介紹對是Qt學習之路 Chapter詳解,用到了Qt 的很多類,本文實例是創建窗口,請看本文吧。

本文開始介紹Qt學習之路,本文用了大量的類,這樣才能使我們可以很好的去了解Qt

Subclassing QMainWindow(從QMainWindow 派生類)

closeEvent是QWidget的虛函數, 當關閉窗口時自動調用, 在派生類中可以重新實現該函數. Qt 應用程序使用圖像的方法: 保存圖像至文件, 運行期間加載 在源代碼中包含XPM文件(XPM文件也是有效的C++文件)

使用Qt資源機制

如果需要使用資源系統, 我們必須創建資源文件, 并在.pro文件中添加一行標識資源文件: RESOURCES = spreadsheet.qrc

資源文件僅僅是簡單的XML格式

  1. <RCC>   
  2.  <qresource>    
  3.     <file>images/icon.png</file>   
  4.      ...   
  5.       <file>images/gotocell.png</file> 
  6.   </qresource> 
  7.   </RCC> 
  8.   <RCC> 
  9. <qresource> 
  10.     <file>images/icon.png</file> 
  11.     ...  
  12.     <file>images/gotocell.png</file> 
  13. </qresource> 
  14. </RCC> 

 
需要使用前綴 :/, 如 :/images/icon.png

2 、Creating Menus and Toolbars

Qt中創建菜單和工具條有以下三個步驟:

創建和設置Action
創建菜單和并給他們放置action

創建工具條并給他們放置action

  1. QAbstractItemView:: selectAll()   
  2. QTableView::setShowGrid(bool)  

QMainWindow::menuBar () --- ***次調用則創建一個菜單條

widget增加右鍵菜單的方法:

首先addAction, 而后調用setContextMenuPolicy(Qt::ActionsContextMenu); 設置關聯菜單,是重載QWidget::contextMenuEvent函數, 然后調用exec()實現

  1. QMainWindow::addToolBar() --- 增加工具條  

3、 Setting Up the Status Bar

QMainWindow::statusBar ()函數得到其指針, 而后可用 addWidget() 添加該狀態欄

QStatusBar::addWidget() 第二個參數設置為1表示拉伸

#p#

4、Implementing the File Menu

QMessageBox::warning() --- 警告對話框, 還有 information(), question(), critical()

QFileDialog::getOpenFileName() 打開文件對話框. QFileDialog::getSaveFileName 保存文件對話框, QFileDialog::DontConfirmOverwrite()

文件對話框的窗口會出現其父窗口的左上角, 并共享其父窗口的任務條(taskbar entry)

QWidget的close() slot會調用closeEvent()

  1. event->ignore(); // 忽略該事件   
  2. event->accept(); // 表示接受該事件  

我們可以通過設置QApplication's quitOnLastWindowClosed 屬性為假來禁止程序關閉, 直至調用QApplication::quit()

  1. QFileInfo(fullFileName).fileName(); 得到文件名  

Qt列表容器的prepend()函數用于列表, 列表類的方法之一, 作用是插入列表的開頭

QVariant類型可以保存許多C++和Qt類型的數據, 可將該數據保存至 Action 的Data中QObject::sender() 該函數可以在slot中得到sender object的指針, 對于多個signal連接至一個slot時很有用.

5、Using Dialogs

通過signal和slot 對查找對話框和主程序進行互動

QWidget可以通過方法 raise() 和 activateWindow() 來使得該窗口激活在屏幕的最前方

非模式對話框使用show()來顯示, 模式對話框則使用 exec()來顯示

QTableWidgetSelectionRange --- 存儲表格選擇區域的左上和右下所在行列

About對話框 --- QMessageBox::about()

比較少的做法: QMessageBox 或 QFileDialog可以像正常的widget那樣創建, 而后調用exec執行.

6、 Storing Settings

 

QSettings在不同的平臺中, 存儲在不同的地方. Windows程序則存儲在系統注冊表里.

其構造函數參數含組織名稱和應用程序名稱, 方便其查找和寫入

QSettings 存儲類 key-value對的設定, key類似文件系統路徑, subkey則類似路徑語法(如findDialog/matchCase)

可使用beginGroup()和endGroup()

  1. settings.beginGroup("findDialog");  
  2.    settings.setValue("matchCase", caseCheckBox->isChecked());  
  3.    settings.setValue("searchBackward", backwardCheckBox->isChecked());  
  4.    settings.endGroup();  
  5.          settings.beginGroup("findDialog");  
  6. settings.setValue("matchCase", caseCheckBox->isChecked());  
  7. settings.setValue("searchBackward", backwardCheckBox->isChecked());  
  8. settings.endGroup(); 

QSetting的value則可以為int, bool, double, QString, QStringList, 或者任意QVariant支持的類型.

7、Multiple Documents

修改程序為多文檔程序

File|New: 創建一個新的空文檔窗口, 而不是重新使用已存的主窗口

File|Close: 關閉當前主窗口

File|Exit: 關閉所有窗口

給widget設置屬性Qt::WA_DeleteOnClose, 當關閉的時候刪除該widget在內存中的資源, 節省內存. setAttribute(Qt::WA_DeleteOnClose);

foreach (QWidget *win, QApplication::topLevelWidgets()); // 可以用來遍歷應用程序的所有窗口

8、Splash Screens

QSplashScreen實現Splash Screen效果

QSplashScreen在主窗口顯示之前顯示一張圖像, 并在圖像上寫信息用來告知用戶應用程序的初始化過程.

splash代碼一般位于main()函數中, 在調用QApplication::exec()之前

  1. QSplashScreen *splash = new QSplashScreen;  
  2.    splash->setPixmap(QPixmap(":/images/splash.png"));  
  3.    splash->show();  
  4.    Qt::Alignment topRight = Qt::AlignRight | Qt::AlignTop;  
  5.    splash->showMessage(QObject::tr("Setting up the main window..."),       topRight, Qt::white);  
  6.    ... ...  
  7.    splash->showMessage(QObject::tr("Loading modules..."),       topRight, Qt::white);  
  8.    ... ...  
  9.    splash->showMessage(QObject::tr("Establishing connections..."),       topRight, Qt::white);   
  10.   ... ...  
  11.    splash->finish(&mainWin);  
  12.    delete splash;  
  13.    return app.exec();   

小結:Qt學習之路內容介紹完了,不知道有沒有幫助到你,也許你已經對Qt很熟悉了,***希望本品按文章能幫助你很好的去學習,想了解更多請看:

Qt學習之路 上篇

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

2011-06-17 09:58:26

Qt Chapter QObject

2011-07-05 18:40:19

QT 信號 機制

2011-06-30 10:36:07

QT Graphics View

2011-06-27 10:28:45

Qt 網絡 TCP

2011-06-24 16:50:06

QT 框架 OpenCV

2011-06-23 18:16:59

Qt Qtopia

2011-07-01 14:20:59

Qt 事件

2011-07-02 13:42:24

Qt 移植

2011-07-05 13:32:45

QT Mysql 驅動

2011-07-02 13:24:39

QT Linux

2011-09-07 16:28:46

QT WidgetQWidget

2010-05-18 13:53:34

Subversion插

2011-06-17 17:16:01

Qt Eclipse Linux

2011-06-17 13:39:47

Qt 文件

2011-09-09 17:24:39

Qt Webkit模塊

2011-06-30 16:08:05

Qt 字庫 QPF

2011-06-27 13:49:43

Qt 數據庫 QSqlQueryM

2011-09-01 16:01:25

Qt插件

2016-12-15 21:15:58

大數據

2018-04-20 12:12:18

數據分析可視化數據挖掘
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品视频一二区 | 国产亚洲高清视频 | 一级毛片视频在线 | 婷婷在线视频 | 在线看av的网址 | 色资源av| 亚洲毛片| 欧美日韩91 | 欧美xxxx在线| 免费在线一区二区三区 | 国产国产精品久久久久 | 99精品欧美一区二区三区综合在线 | 亚洲国产成人一区二区 | 日本不卡一区二区 | 欧美中文字幕一区 | 精品96久久久久久中文字幕无 | 狠狠干狠狠操 | 国产免费又色又爽又黄在线观看 | 91精品国产91久久综合桃花 | 免费日韩av网站 | 免费毛片在线 | 亚洲精品久久久久久久久久久 | 国产成人a亚洲精品 | 成人影院免费视频 | 国产一级片av | 国产精品一区二区在线 | 日韩视频精品在线 | 日韩无 | 成人精品一区二区 | 国产成人自拍一区 | 日本精品一区二区三区在线观看视频 | 夜夜爽99久久国产综合精品女不卡 | 在线日韩精品视频 | 日本精品一区二区三区视频 | 午夜精品一区二区三区在线视 | 91在线一区| 久久99精品久久久久子伦 | 精品久久久999 | 精久久久 | 亚洲国产精品99久久久久久久久 | 亚洲精品乱码 |