版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Qt Creator快速入門快速入門第第2版版第第5 5章章 應(yīng)用程序主窗口應(yīng)用程序主窗口(3課時(shí))主主 要要 內(nèi)內(nèi) 容容n5.1 主窗口框架主窗口框架(第(第1課時(shí))課時(shí))n5.2 富文本處理富文本處理(第(第2課時(shí))課時(shí))n5.3 拖放操作拖放操作(第(第3課時(shí))課時(shí))n5.4 打印文檔打印文檔(第(第3課時(shí))課時(shí))n5.5 小結(jié)小結(jié)(第(第3課時(shí))課時(shí))n Qt中主窗口程序的框架 手工創(chuàng)建QMainWindow主窗口的基本步驟 結(jié)合Qt Designer創(chuàng)建主窗口的方法 QAction動(dòng)作的創(chuàng)建 如何在菜單及工具欄中加入動(dòng)作 如何加入錨接窗口 各種錨接方式以及錨接窗體特性的設(shè)置方法 創(chuàng)建
2、多文檔應(yīng)用程序的方法和步 5.1 主窗口框架主窗口框架n 主窗口為建立應(yīng)用程序用戶界面提供了一個(gè)框架,Qt提供了QMainWindow和與其相關(guān)的一些類來(lái)進(jìn)行主窗口的管理。nQMainWindow類提供了一個(gè)應(yīng)用程序主窗口,包括一個(gè)菜單欄( menu bar)、多個(gè)工具欄(tool bars)、多個(gè)錨接部件(dock widgets)、一個(gè)狀態(tài)欄(status bar)以及一個(gè)中心部件(central widget)。 QMainWindowQMainWindow常用布局如下:常用布局如下:菜單欄(菜單欄(QMenuBar)。菜)。菜單欄包含了一個(gè)下拉菜單項(xiàng)的單欄包含了一個(gè)下拉菜單項(xiàng)的列表,這
3、些菜單項(xiàng)由列表,這些菜單項(xiàng)由QAction動(dòng)作類實(shí)現(xiàn)。菜單欄位于主窗動(dòng)作類實(shí)現(xiàn)。菜單欄位于主窗口的頂部,一個(gè)主窗口只能有口的頂部,一個(gè)主窗口只能有一個(gè)菜單欄。一個(gè)菜單欄。工具欄(工具欄(QToolBar)。工)。工具欄一般用于顯示一些常用具欄一般用于顯示一些常用的菜單項(xiàng)目,它也可以插入的菜單項(xiàng)目,它也可以插入其他窗口部件,并且工具欄其他窗口部件,并且工具欄是可以移動(dòng)的。一個(gè)主窗口是可以移動(dòng)的。一個(gè)主窗口可以擁有多個(gè)工具欄??梢該碛卸鄠€(gè)工具欄。中心部件(中心部件(Central Widget)。在主窗口的中心)。在主窗口的中心區(qū)域可以放入一個(gè)窗口部件區(qū)域可以放入一個(gè)窗口部件作為中心部件,它是應(yīng)用
4、程作為中心部件,它是應(yīng)用程序的主要功能實(shí)現(xiàn)區(qū)域。一序的主要功能實(shí)現(xiàn)區(qū)域。一個(gè)主窗口只能擁有一個(gè)中心個(gè)主窗口只能擁有一個(gè)中心部件。部件。Dock部件部件(QDockWidget)。)。Dock部部件常被稱為停靠窗口,因?yàn)樗1环Q為??看翱?,因?yàn)樗梢酝?吭谥行牟考乃闹堋?梢酝?吭谥行牟考乃闹堋K脕?lái)放置一些部件來(lái)實(shí)現(xiàn)一它用來(lái)放置一些部件來(lái)實(shí)現(xiàn)一些功能,就像個(gè)工具箱一樣。些功能,就像個(gè)工具箱一樣。一個(gè)主窗口可以擁有多個(gè)一個(gè)主窗口可以擁有多個(gè)Dock部件。部件。狀態(tài)欄(狀態(tài)欄(QStatusBar)。)。狀態(tài)欄用于顯示程序的一些狀態(tài)欄用于顯示程序的一些狀態(tài)信息,它在主窗口的最狀態(tài)信息,它在主窗
5、口的最底部。一個(gè)主窗口只能擁有底部。一個(gè)主窗口只能擁有一個(gè)狀態(tài)欄。一個(gè)狀態(tài)欄。創(chuàng)建主窗口方法創(chuàng)建主窗口方法一、一、全部代碼生成,單繼承自QMainWindow類,在子類的實(shí)現(xiàn)文件中使用代碼創(chuàng)建應(yīng)用程序主窗口的菜單、工具欄、錨接部件以及狀態(tài)欄等并設(shè)置它們的屬性;二、使用Qt設(shè)計(jì)師繪制應(yīng)用程序主窗口,然后添加菜單、工具欄等,并進(jìn)行屬性設(shè)置、關(guān)聯(lián)信號(hào)與槽;與代碼相結(jié)合;創(chuàng)建主窗口流程創(chuàng)建主窗口流程創(chuàng)建主菜單創(chuàng)建子菜單創(chuàng)建動(dòng)作創(chuàng)建工具欄動(dòng)作和菜單項(xiàng)創(chuàng)建錨接窗口創(chuàng)建中心窗口創(chuàng)建狀態(tài)欄 QMainWindow類成員函數(shù)nQMenuBar* QMainWindow:menuBar ( ) constnQTo
6、olBar* QMainWindow:addToolBar ( const QString& title )nvoid QMainWindow:setCentralWidget ( QWidget* widget )nQStatusBar* QMainWindow:statusBar ( ) constQMainWindow類QMenuBar *QMainWindow:menuBar() const;n 返回一個(gè)主窗口的菜單欄對(duì)象指針。n若主窗口不存在菜單欄,則會(huì)創(chuàng)建一個(gè)空的菜單欄。QMainWindow類QToolBar * QMainWindow:addToolBar ( cons
7、t QString & title ); 創(chuàng)建一個(gè)QToolBar對(duì)象,返回這個(gè)對(duì)象的指針,并在主窗口頂部工具欄區(qū)域中顯示。void QMainWindow:addToolBar ( Qt:ToolBarArea area, QToolBar * toolbar );void QMainWindow:addToolBar ( QToolBar * toolbar );已創(chuàng)建了工具欄(QToolBar)對(duì)象時(shí),將工具欄對(duì)象添加到QMainWindow對(duì)象中。其中:ntoolbar為已定義好的工具欄對(duì)象指針,larea工具欄表示的位置,此形參為枚舉型變量。共4種,即左右上下: Qt:Lef
8、tToolBarArea 0 x1 Qt:RightToolBarArea 0 x2 Qt:TopToolBarArea 0 x4 Qt:BottomToolBarArea 0 x8QMainWindow類QStatusBar *QMainWindow:statusBar() const;n當(dāng)主窗口狀態(tài)欄不存在時(shí),創(chuàng)建狀態(tài)欄,并返回狀態(tài)欄對(duì)象指針。n一般在自定義QMainWindow子類的構(gòu)造函數(shù)時(shí)使用,創(chuàng)建狀態(tài)欄對(duì)象。創(chuàng)建后,添加QLabel對(duì)象,以顯示主窗口狀態(tài)或菜單欄中按鈕的狀態(tài)提示。QMainWindow類void QMainWindow:setCentralWidget ( QWid
9、get * widget ); n設(shè)置傳入部件為主窗口布局的中心領(lǐng)域部件。n傳入部件可為任意的部件或QWidget類的子類部件。菜單欄菜單欄QMenuBarQMenuBarnQMenuBar類提供了一個(gè)水平的菜單欄,在QMainWindow中可以直接獲取它的默認(rèn)存在的菜單欄,向其中添加QMenu類型的菜單對(duì)象,然后向彈出菜單中添加QAction類型的動(dòng)作對(duì)象。n區(qū)分:菜單是QMenu對(duì)象,多個(gè)QMenu對(duì)象放置在一個(gè)QMenuBar(菜單欄)對(duì)象中。對(duì)于每個(gè)菜單,我們?cè)贋槠涮碇脛?dòng)作列表,即QAction對(duì)象。菜單欄菜單欄QMenuBarQMenuBarQMenuQMenu類類提示:菜單不需要?jiǎng)?chuàng)
10、建,只需menubar中添加即可。/返回菜單欄指針,以便以后添加相應(yīng)菜單。QMenuBar* QMainWindow:menuBar ( ) const/添加菜單QMenu * addMenu ( const QIcon & icon, const QString & title )/添加分割線QAction * addSeparator ()/方法向菜單中添加動(dòng)作QAction * addAction()添加菜單示例添加菜單示例/ 添加添加“文件文件” 菜單菜單QMenu *fileMenu = ui-menuBar-addMenu(tr(“文件文件(&F);/ 添加
11、添加“打開文件打開文件” 動(dòng)作動(dòng)作 QAction *action_Open = fileMenu-addAction( QIcon(“./images/open.png),tr(打開文件打開文件(&O);菜單欄菜單欄QMenuBarQMenuBarQactionQaction類:類:nQActionQAction類提供了一個(gè)可以同時(shí)出現(xiàn)在菜單和工具條上的抽象用戶界類提供了一個(gè)可以同時(shí)出現(xiàn)在菜單和工具條上的抽象用戶界面操作。如果添加到菜單中就會(huì)顯示成菜單項(xiàng)(文件,工具,收藏等面操作。如果添加到菜單中就會(huì)顯示成菜單項(xiàng)(文件,工具,收藏等菜單項(xiàng));如果添加到工具條,就會(huì)顯示成一個(gè)按鈕。菜單
12、項(xiàng));如果添加到工具條,就會(huì)顯示成一個(gè)按鈕。nQActionQAction類保存有關(guān)這個(gè)動(dòng)作的信息,例如文本描述、圖標(biāo)、快捷鍵類保存有關(guān)這個(gè)動(dòng)作的信息,例如文本描述、圖標(biāo)、快捷鍵、回調(diào)函數(shù)等、回調(diào)函數(shù)等 。n一個(gè)一個(gè)QActionQAction動(dòng)作包含了一個(gè)圖標(biāo),一個(gè)菜單顯示文本,一個(gè)快捷鍵,動(dòng)作包含了一個(gè)圖標(biāo),一個(gè)菜單顯示文本,一個(gè)快捷鍵,一個(gè)狀態(tài)欄顯示文本,一個(gè)一個(gè)狀態(tài)欄顯示文本,一個(gè)“Whats ThisWhats This?”顯示文本和一個(gè)工具顯示文本和一個(gè)工具提示文本。這些都可以在構(gòu)建提示文本。這些都可以在構(gòu)建QActionQAction類對(duì)象時(shí)在構(gòu)造函數(shù)中指定。類對(duì)象時(shí)在構(gòu)造函數(shù)中
13、指定。菜單欄菜單欄QMenuBarQMenuBarQactionQaction類:類:QAction ( QObject QAction ( QObject * * parent ) parent )QAction ( const QString & text, QObject QAction ( const QString & text, QObject * * parent ) parent )QAction ( const QIcon & icon, const QString & text, QObject QAction ( const QIcon &
14、amp; icon, const QString & text, QObject * * parent ) parent )n常用方法:常用方法:nsetShortcutsetShortcut()設(shè)置快捷鍵()設(shè)置快捷鍵nsetStatusTipsetStatusTip()設(shè)置狀態(tài)提示()設(shè)置狀態(tài)提示nsetIcon(QIcon(“setIcon(QIcon(“圖片路徑圖片路徑”)nQAction:triggered ( ) QAction:triggered ( ) 【信號(hào)信號(hào)】當(dāng)在此動(dòng)作中單擊鼠標(biāo),則發(fā)送該信號(hào)。當(dāng)在此動(dòng)作中單擊鼠標(biāo),則發(fā)送該信號(hào)。菜單欄菜單欄QMenuBarQMe
15、nuBar QAction QAction * *openAction;openAction; / /構(gòu)造一個(gè)構(gòu)造一個(gè)QActionQAction類的對(duì)象類的對(duì)象 openAction = new QAction(tr(&Open), this);openAction = new QAction(tr(&Open), this); / /設(shè)置動(dòng)作快捷鍵設(shè)置動(dòng)作快捷鍵 openAction-setShortcut(QKeySequence:Open); openAction-setShortcut(QKeySequence:Open);/ 狀態(tài)欄顯示狀態(tài)欄顯示 openActio
16、n-setStatusTip(tr(Open a file.); openAction-setStatusTip(tr(Open a file.);/把這個(gè)把這個(gè)QActionQAction添加到菜單添加到菜單 QMenu QMenu * *file = menuBar()-addMenu(tr(&File);file = menuBar()-addMenu(tr(&File); file-addAction(openAction); file-addAction(openAction);/把這個(gè)把這個(gè)QActionQAction添加到工具條:添加到工具條: QToolBar
17、QToolBar * *toolBar = addToolBar(tr(&File);toolBar = addToolBar(tr(&File); toolBar-addAction(openAction); toolBar-addAction(openAction);工具欄工具欄QToolBar類類n工具欄工具欄QToolBar類提供了一個(gè)包含了一組控件的可以移動(dòng)的面板類提供了一個(gè)包含了一組控件的可以移動(dòng)的面板,它它用于提供常用命令或者選項(xiàng)的快速訪問(wèn)。用于提供常用命令或者選項(xiàng)的快速訪問(wèn)。nQToolBar是是QDockWindow的特殊化,并且提供的特殊化,并且提供QDoc
18、kWindow的的所有功能。所有功能。n可以使用絕大多數(shù)窗口部件,最常用可以使用絕大多數(shù)窗口部件,最常用QToolButton和和QComboBox。n使用使用addAction()添加部件。添加部件。工具欄工具欄QToolBar類類屬性:屬性:ntoolButtonStyle:設(shè)置圖標(biāo)和相應(yīng)文本的顯示及其相對(duì)位置等;:設(shè)置圖標(biāo)和相應(yīng)文本的顯示及其相對(duì)位置等;nMovabel:設(shè)置狀態(tài)欄是否可以移動(dòng);:設(shè)置狀態(tài)欄是否可以移動(dòng);nallowedArea:設(shè)置允許??康奈恢?;:設(shè)置允許??康奈恢茫籲Iconsize:屬性設(shè)置圖標(biāo)的大??;:屬性設(shè)置圖標(biāo)的大??;nFloatable:屬性設(shè)置是否可以懸
19、浮。:屬性設(shè)置是否可以懸浮。工具欄中添加窗口部件示例工具欄中添加窗口部件示例QToolButton *toolBtn = new QToolButton(this); / 創(chuàng)建創(chuàng)建QToolButtontoolBtn-setText(tr(顏色顏色);QMenu *colorMenu = new QMenu(this); / 創(chuàng)建一個(gè)菜單創(chuàng)建一個(gè)菜單colorMenu-addAction(tr(紅色紅色);colorMenu-addAction(tr(綠色綠色);toolBtn-setMenu(colorMenu); / 添加菜單添加菜單toolBtn-setPopupMode(QToolBu
20、tton:MenuButtonPopup); / 設(shè)置彈出模式設(shè)置彈出模式ui-mainToolBar-addWidget(toolBtn); / 向工具欄添加向工具欄添加QToolButton按鈕按鈕QSpinBox *spinBox = new QSpinBox(this); / 創(chuàng)建創(chuàng)建QSpinBoxui-mainToolBar-addWidget(spinBox); / 向工具欄添加向工具欄添加QSpinBox部件部件工具欄中添加窗口部件示例工具欄中添加窗口部件示例QToolButton *toolBtn = new QToolButton(this); / 創(chuàng)建創(chuàng)建QToolBut
21、tontoolBtn-setText(tr(顏色顏色);QMenu *colorMenu = new QMenu(this); / 創(chuàng)建一個(gè)菜單創(chuàng)建一個(gè)菜單colorMenu-addAction(tr(紅色紅色);colorMenu-addAction(tr(綠色綠色);toolBtn-setMenu(colorMenu); / 添加菜單添加菜單toolBtn-setPopupMode(QToolButton:MenuButtonPopup); / 設(shè)置彈出模式設(shè)置彈出模式ui-mainToolBar-addWidget(toolBtn); / 向工具欄添加向工具欄添加QToolButton按
22、鈕按鈕QSpinBox *spinBox = new QSpinBox(this); / 創(chuàng)建創(chuàng)建QSpinBoxui-mainToolBar-addWidget(spinBox); / 向工具欄添加向工具欄添加QSpinBox部件部件中心部件中心部件Central Widgetn在主窗口的中心區(qū)域可以放置一個(gè)中心部件,它一般是一個(gè)編輯器或者瀏覽在主窗口的中心區(qū)域可以放置一個(gè)中心部件,它一般是一個(gè)編輯器或者瀏覽器。這里支持單文檔部件,也支持多文檔部件。器。這里支持單文檔部件,也支持多文檔部件。n采用采用Qt Designer創(chuàng)建主窗口時(shí),默認(rèn)情況下,系統(tǒng)已經(jīng)創(chuàng)建了一個(gè)中心窗創(chuàng)建主窗口時(shí),默認(rèn)情
23、況下,系統(tǒng)已經(jīng)創(chuàng)建了一個(gè)中心窗口部件,它是子類化口部件,它是子類化QWidget的。的。n代碼設(shè)置中心窗口部件可以調(diào)用主窗口類代碼設(shè)置中心窗口部件可以調(diào)用主窗口類setCentralWidget()方法,每次程方法,每次程序調(diào)用序調(diào)用setCentralWidget()方法時(shí),先前存在的中心窗口部件將被新的所替方法時(shí),先前存在的中心窗口部件將被新的所替換,而且主窗口會(huì)銷毀原來(lái)的部件,無(wú)需用戶處理。換,而且主窗口會(huì)銷毀原來(lái)的部件,無(wú)需用戶處理。n從理論上來(lái)講,任何繼承自從理論上來(lái)講,任何繼承自QWidget的類的派生類的實(shí)例,都可以作為中心的類的派生類的實(shí)例,都可以作為中心窗口部件使用。窗口部件
24、使用。通常情況如下:通常情況如下:n 使用標(biāo)準(zhǔn)的使用標(biāo)準(zhǔn)的Qt窗口部件,例如窗口部件,例如QWidget、Qlabel以及QTextEdit等等。n 使用自定義窗口部件(使用自定義窗口部件(User-Define-Widget) 有時(shí)候,某些有特殊要求的應(yīng)用程序需要在自定義窗口部件中顯示數(shù)據(jù),你可以把自定義的窗口部件作為中心窗口部件。例如,你的繪圖編輯器程序程序就可以使用類似名為PhotoEditor的自定義窗口部件作為自己的中心窗口部件。中心部件中心部件Central Widgetn3. 使用一個(gè)帶布局管理器的普通使用一個(gè)帶布局管理器的普通Widget 有時(shí)候,應(yīng)用程序的中央?yún)^(qū)域會(huì)被許多窗口
25、部件所占用。這時(shí)就可以通過(guò)使用一個(gè)作為所有這些其他窗口部件父對(duì)象的QWidget,以及通過(guò)使用布局管理器管理這些子窗口部件的大小和位置來(lái)完成這一特殊情況。n4. 使用切分窗口(使用切分窗口(QSplitter)這種情況是上一種情況的一個(gè)例子。多個(gè)窗口部件一起使用的另一種方法是使用QSplitter。n5. 使用多文檔界面工作空間(使用多文檔界面工作空間(QMdiArea) 如果應(yīng)用程序使用的是多文檔界面,那么它的中心區(qū)域就會(huì)被QMdiArea窗口部件所占據(jù),并且每個(gè)多文檔界面窗口都是它的一個(gè)子窗口界面。n6. 使用工作空間部件(使用工作空間部件(QWorkspace)這種情況通常用于多文檔應(yīng)用
26、程序中,這時(shí)應(yīng)用程序主窗口的中心部件是一個(gè)QWorkspace部件或者它的子類化部件。但這種方法在Qt4.5以后將被廢棄。中心部件中心部件Central Widget/創(chuàng)建中心部件QTextEdit * text;text = new QTextEdit(this);setCentralWidget(text);Dock部件部件QDockWidgetQDockWidget類類nQDockWidget類提供了一個(gè)特殊的窗口部件,它可以是被鎖在類提供了一個(gè)特殊的窗口部件,它可以是被鎖在QMainWindow窗口內(nèi)部或者是作為頂級(jí)窗口懸浮在桌面上。窗口內(nèi)部或者是作為頂級(jí)窗口懸浮在桌面上。n一個(gè)一個(gè)D
27、ockDock部件包含一個(gè)標(biāo)題欄和一個(gè)內(nèi)容區(qū)域,可以向部件包含一個(gè)標(biāo)題欄和一個(gè)內(nèi)容區(qū)域,可以向DockDock部件中放入任何部件中放入任何部件。部件。 創(chuàng)建創(chuàng)建DockWidgetDockWidget流程:流程:n創(chuàng)建一個(gè)創(chuàng)建一個(gè)QDockWidget對(duì)象的??看绑w。對(duì)象的??看绑w。n設(shè)置此??看绑w的屬性,通??梢允褂迷O(shè)置此??看绑w的屬性,通??梢允褂胹etFeatures()以及()以及setAllowedAreas()兩種方法。()兩種方法。n新建一個(gè)要插入??看绑w的控件,常用的有新建一個(gè)要插入??看绑w的控件,常用的有QListWidget和和QtextEdit。n將控件插入停靠窗體,調(diào)用
28、將控件插入停靠窗體,調(diào)用QDockWidget()和()和setWidget()成員函數(shù)。()成員函數(shù)。n使用使用addDockWidget()方法,在()方法,在MainWindow中加入此??看绑w。中加入此??看绑w。Dock部件部件QDockWidgetQDockWidget類類QDockWidget *dock = new QDockWidget(tr(DockWindow1),this); /指定停靠窗體的樣式,此處為可移動(dòng) dock-setFeatures(QDockWidget:DockWidgetMovable);dock-setAllowedAreas(Qt:LeftDockW
29、idgetArea | Qt:RightDockWidgetArea); QTextEdit *text1 = new QTextEdit(); text1-setText(tr(窗口一); dock-setWidget(text1); addDockWidget(Qt:RightDockWidgetArea,dock); Dock部件部件n例如:例如:在設(shè)計(jì)模式中向中心區(qū)域拖入一個(gè)在設(shè)計(jì)模式中向中心區(qū)域拖入一個(gè)Dock Widget部件,然后再向部件,然后再向Dock中隨意拖入幾個(gè)部件,比如這里拖入一個(gè)中隨意拖入幾個(gè)部件,比如這里拖入一個(gè)Push Button和一個(gè)和一個(gè)Font Combo
30、 Box。然后在。然后在dockWidget的屬性欄中更改其的屬性欄中更改其windowTitle為為“工具箱工具箱”。狀態(tài)欄狀態(tài)欄nQStatusBar類提供了一個(gè)水平條,用來(lái)顯示狀態(tài)信息。類提供了一個(gè)水平條,用來(lái)顯示狀態(tài)信息。nQMainWindow中默認(rèn)提供了一個(gè)狀態(tài)欄。在狀態(tài)欄的最右端,還有一個(gè)中默認(rèn)提供了一個(gè)狀態(tài)欄。在狀態(tài)欄的最右端,還有一個(gè)QSizeGrip部件,用來(lái)調(diào)整窗口的大小,可以使用部件,用來(lái)調(diào)整窗口的大小,可以使用setSizeGripEnabled()函函數(shù)來(lái)禁用它。數(shù)來(lái)禁用它。狀態(tài)信息可以被分為三類:狀態(tài)信息可以被分為三類:n臨時(shí)信息,如一般的提示信息;可以使用臨時(shí)信
31、息,如一般的提示信息;可以使用showMessage()函數(shù)來(lái)顯示一個(gè)臨函數(shù)來(lái)顯示一個(gè)臨時(shí)消息,它會(huì)出現(xiàn)在狀態(tài)欄的最左邊。時(shí)消息,它會(huì)出現(xiàn)在狀態(tài)欄的最左邊。n正常信息,如顯示頁(yè)數(shù)和行號(hào);一般用正常信息,如顯示頁(yè)數(shù)和行號(hào);一般用addWidget()函數(shù)添加一個(gè)函數(shù)添加一個(gè)QLabel到到狀態(tài)欄上用于顯示正常信息,它會(huì)生成到狀態(tài)欄的最左邊,可能會(huì)被臨時(shí)消狀態(tài)欄上用于顯示正常信息,它會(huì)生成到狀態(tài)欄的最左邊,可能會(huì)被臨時(shí)消息所掩蓋。息所掩蓋。n永久信息,如顯示版本號(hào)或者日期。如果要顯示永久信息,要使用永久信息,如顯示版本號(hào)或者日期。如果要顯示永久信息,要使用addPermanentWidget()函
32、數(shù)來(lái)添加一個(gè)如函數(shù)來(lái)添加一個(gè)如QLabel一樣的可以顯示信息的部一樣的可以顯示信息的部件,它會(huì)生成在狀態(tài)欄的最右端,不會(huì)被臨時(shí)消息所掩蓋。件,它會(huì)生成在狀態(tài)欄的最右端,不會(huì)被臨時(shí)消息所掩蓋。 目前的設(shè)計(jì)器中還不支持直接向狀態(tài)欄中拖放部件,所以需要使用代碼目前的設(shè)計(jì)器中還不支持直接向狀態(tài)欄中拖放部件,所以需要使用代碼來(lái)生成。例如:來(lái)生成。例如:/ 顯示臨時(shí)消息,顯示顯示臨時(shí)消息,顯示2000毫秒即毫秒即2秒鐘秒鐘ui-statusBar-showMessage(tr(歡迎使用多文檔編輯器歡迎使用多文檔編輯器), 2000);/ 創(chuàng)建標(biāo)簽,設(shè)置標(biāo)簽樣式并顯示信息,將其以永久部件的形式添加到狀態(tài)欄創(chuàng)
33、建標(biāo)簽,設(shè)置標(biāo)簽樣式并顯示信息,將其以永久部件的形式添加到狀態(tài)欄QLabel *permanent = new QLabel(this); permanent-setFrameStyle(QFrame:Box | QFrame:Sunken); permanent-setText(); ui-statusBar-addPermanentWidget(permanent); 此時(shí)運(yùn)行程序,可以發(fā)現(xiàn)此時(shí)運(yùn)行程序,可以發(fā)現(xiàn)“歡迎使用多文檔編輯器歡迎使用多文檔編輯器”字符串在顯示一會(huì)字符串在顯示一會(huì)兒后就自動(dòng)消失了,而兒后就自動(dòng)消失了,而“”一直顯示在狀態(tài)欄最右端。一直顯示在狀態(tài)欄最右端。 資源系統(tǒng)資
34、源系統(tǒng) Qt資源系統(tǒng)是一個(gè)獨(dú)立于平臺(tái)的(跟使用的操作系統(tǒng)無(wú)關(guān))用于資源系統(tǒng)是一個(gè)獨(dú)立于平臺(tái)的(跟使用的操作系統(tǒng)無(wú)關(guān))用于在可執(zhí)行文件中存儲(chǔ)二進(jìn)制文件的機(jī)制,是在可執(zhí)行文件中存儲(chǔ)二進(jìn)制文件的機(jī)制,是Qt核心機(jī)制之一。核心機(jī)制之一。n可以讓需要的文件(圖片、文本等)包含到程序編程生成的可執(zhí)行文可以讓需要的文件(圖片、文本等)包含到程序編程生成的可執(zhí)行文件(例如件(例如exe文件)中。文件)中。n保證了程序中使用的文件不會(huì)丟失、不會(huì)因?yàn)榇娣怕窂蕉鴮?dǎo)致程序運(yùn)保證了程序中使用的文件不會(huì)丟失、不會(huì)因?yàn)榇娣怕窂蕉鴮?dǎo)致程序運(yùn)行錯(cuò)誤。行錯(cuò)誤。nQt4使用資源集(使用資源集( Resource Collectio
35、n Files)文件,即)文件,即.qrc文件。文件。qmake能夠識(shí)別這個(gè)資源集文件,并且能夠根據(jù)它的描述去相應(yīng)的目能夠識(shí)別這個(gè)資源集文件,并且能夠根據(jù)它的描述去相應(yīng)的目錄下定位具體的資源錄下定位具體的資源 。 資源文件介紹資源文件介紹nqrcqrc資源文件是資源文件是基于標(biāo)準(zhǔn)基于標(biāo)準(zhǔn) xml格式的文本文件,列出了所有嵌入到可格式的文本文件,列出了所有嵌入到可執(zhí)行文件中的文件執(zhí)行文件中的文件 ,條理非常清晰,易于閱讀和維護(hù)。,條理非常清晰,易于閱讀和維護(hù)。 images/new.png images/new.png images/open.png images/open.png images
36、/save.png images/save.png 在這里指明了文件類型為在這里指明了文件類型為RCCRCC,表明是,表明是QtQt資源文件。然后是資源前綴,應(yīng)用程資源文件。然后是資源前綴,應(yīng)用程序中,資源是路徑前綴識(shí)別的序中,資源是路徑前綴識(shí)別的 。filefile羅列了添加的圖片的路徑。羅列了添加的圖片的路徑。 n資源文件使用時(shí),在工程文件資源文件使用時(shí),在工程文件.pro中添加一行代碼:中添加一行代碼:RESOURCES += myImage.qrcRESOURCES += myImage.qrcn通過(guò)通過(guò)QtQt資源編輯器資源編輯器 rccrcc,可以將資源轉(zhuǎn)換為,可以將資源轉(zhuǎn)換為 C
37、+C+代碼代碼 。在在Qt Creator中添加資源中添加資源n第一步,添加第一步,添加Qt資源文件。往項(xiàng)目中添加新文件,選擇資源文件。往項(xiàng)目中添加新文件,選擇Qt分類中的分類中的Qt資源文件,文件資源文件,文件名稱改為名稱改為“myImage”,其他選項(xiàng)默認(rèn)即可。,其他選項(xiàng)默認(rèn)即可。n第二步,添加資源。建立好資源文件后會(huì)默認(rèn)進(jìn)入資源管理界面,就是新建的第二步,添加資源。建立好資源文件后會(huì)默認(rèn)進(jìn)入資源管理界面,就是新建的myImage.qrc文件中?,F(xiàn)在先到項(xiàng)目文件夾文件中?,F(xiàn)在先到項(xiàng)目文件夾myMainWindow中新建一個(gè)名為中新建一個(gè)名為“images”的文件夾,并在其中放入兩張圖標(biāo)圖片
38、,比如這里放入了一個(gè)的文件夾,并在其中放入兩張圖標(biāo)圖片,比如這里放入了一個(gè)“new.png”和一個(gè)和一個(gè)“open.png”圖片。(注意:圖片。(注意:Qt的資源系統(tǒng)要求資源文件必須放在與的資源系統(tǒng)要求資源文件必須放在與qrc文件同文件同級(jí)或子級(jí)目錄下,如果放在其他地方,當(dāng)添加資源時(shí)會(huì)提示將文件復(fù)制到有效的位級(jí)或子級(jí)目錄下,如果放在其他地方,當(dāng)添加資源時(shí)會(huì)提示將文件復(fù)制到有效的位置。)置。)n 然后回到然后回到Qt Creator中,在資源管理界面,按下中,在資源管理界面,按下“添加添加”按鈕,選擇按鈕,選擇“添加前添加前綴綴”,然后將屬性欄中的前綴改為,然后將屬性欄中的前綴改為“/myIma
39、ge”,再點(diǎn)擊,再點(diǎn)擊“添加添加”按鈕,選擇按鈕,選擇“添加添加文件文件”,在彈出的對(duì)話框中進(jìn)入到前面新建的,在彈出的對(duì)話框中進(jìn)入到前面新建的images文件夾中,選中那兩張圖片,點(diǎn)文件夾中,選中那兩張圖片,點(diǎn)擊打開即可。這時(shí)擊打開即可。這時(shí)myImage.qrc文件中就出現(xiàn)了添加的圖片的列表。最后按下文件中就出現(xiàn)了添加的圖片的列表。最后按下Ctrl+S快捷鍵,保存對(duì)文件的修改(注意:這一點(diǎn)很重要,如果沒(méi)有保存,在下面使用圖片快捷鍵,保存對(duì)文件的修改(注意:這一點(diǎn)很重要,如果沒(méi)有保存,在下面使用圖片時(shí)將看不到圖片)。時(shí)將看不到圖片)。 n第三步,使用圖片。在設(shè)計(jì)模式第三步,使用圖片。在設(shè)計(jì)模式
40、Action編輯器中雙擊編輯器中雙擊“新建文件新建文件”動(dòng)作,這動(dòng)作,這時(shí)會(huì)彈出編輯動(dòng)作對(duì)話框。在其中將對(duì)象名稱改為時(shí)會(huì)彈出編輯動(dòng)作對(duì)話框。在其中將對(duì)象名稱改為“action_New”,工具提,工具提示改為示改為“新建文件新建文件”,然后按下圖標(biāo)后面的按鈕,進(jìn)入選擇資源界面。,然后按下圖標(biāo)后面的按鈕,進(jìn)入選擇資源界面。n第一次進(jìn)入該界面還沒(méi)有顯示可用的資源,需要按下左上角的重新加載綠色第一次進(jìn)入該界面還沒(méi)有顯示可用的資源,需要按下左上角的重新加載綠色箭頭圖標(biāo),這時(shí)圖片資源就顯示出來(lái)了。這里選擇箭頭圖標(biāo),這時(shí)圖片資源就顯示出來(lái)了。這里選擇new.png圖片,然后按下圖片,然后按下確定按鈕。確定按
41、鈕。n如果在編寫代碼時(shí)使用如果在編寫代碼時(shí)使用new.png圖片,那么就可以將其路徑指定為圖片,那么就可以將其路徑指定為“:/myImage/images/new.png”, 前綴前綴“/myImage”是添加資源時(shí)手動(dòng)設(shè)是添加資源時(shí)手動(dòng)設(shè)置的。置的。5.2 富文本處理富文本處理n富文本(富文本(Rich TextRich Text)或者叫做富文本格式,簡(jiǎn)單來(lái)說(shuō)就是在文檔)或者叫做富文本格式,簡(jiǎn)單來(lái)說(shuō)就是在文檔中可以使用多種格式,比如字體顏色、圖片和表格等等。中可以使用多種格式,比如字體顏色、圖片和表格等等。n與純文本(與純文本(Plain TextPlain Text)相對(duì)而言的。)相對(duì)而言
42、的。n例如例如WindowsWindows上的記事本就是純文本編輯器,而上的記事本就是純文本編輯器,而WordWord就是富文本編就是富文本編輯器。輯器。Qt富文本的處理及接口富文本的處理及接口:n編輯操作編輯操作:基于光標(biāo)的一些接口函數(shù),模擬了用戶的編輯操作;基于光標(biāo)的一些接口函數(shù),模擬了用戶的編輯操作;基于基于QTextCursor類類n只讀操作:文檔結(jié)構(gòu)框架預(yù)覽,使用了只讀的分層次的接口函數(shù),它們有利只讀操作:文檔結(jié)構(gòu)框架預(yù)覽,使用了只讀的分層次的接口函數(shù),它們有利于文檔的檢索和輸出。于文檔的檢索和輸出。基于基于QTextDocument類類構(gòu)建構(gòu)建QTextEdit類的對(duì)象時(shí),就已經(jīng)構(gòu)
43、建了一個(gè)類的對(duì)象時(shí),就已經(jīng)構(gòu)建了一個(gè)QTextDocument類對(duì)象和一個(gè)類對(duì)象和一個(gè)QTextCursor類對(duì)象,只需調(diào)用它們進(jìn)行相應(yīng)的操作即可。類對(duì)象,只需調(diào)用它們進(jìn)行相應(yīng)的操作即可。QTextDocument類是文本文檔的代表,它包含了構(gòu)建富文本文檔所需的信息。類是文本文檔的代表,它包含了構(gòu)建富文本文檔所需的信息。富文本文檔結(jié)構(gòu)富文本文檔結(jié)構(gòu)一個(gè)富文本文檔的結(jié)構(gòu)元素:一個(gè)富文本文檔的結(jié)構(gòu)元素:n框架(框架(QTextFrame)n文本塊(文本塊(QTextBlock)n表格(表格(QTextTable)n列表(列表(QTextList) 每種元素的格式又使用相應(yīng)的每種元素的格式又使用相應(yīng)
44、的format類來(lái)表示:類來(lái)表示:n框架格式(框架格式(QTextFrameFormat)n文本塊格式(文本塊格式(QTextBlockFormat)n表格格式(表格格式(QTextTableFormat)n列表格式(列表格式(QTextListFormat)這些格式一般在編輯文檔時(shí)使用,常和這些格式一般在編輯文檔時(shí)使用,常和QTextCursor類配合使用。類配合使用。 富文本文檔結(jié)構(gòu)富文本文檔結(jié)構(gòu)Docment組成:組成:n一個(gè)空的文檔包含了一個(gè)根框架(一個(gè)空的文檔包含了一個(gè)根框架(Root frame),這個(gè)根框架又包含了一個(gè)),這個(gè)根框架又包含了一個(gè)空的文本塊(空的文本塊(Block)
45、。)。n frame將一個(gè)文檔分為多個(gè)部分,在根框架里可以再添加文本塊、子框架和將一個(gè)文檔分為多個(gè)部分,在根框架里可以再添加文本塊、子框架和表格等。表格等。 /創(chuàng)建新文檔QTextDocument *newDocument = new QTextDocument; /獲取已有文檔和光標(biāo)QTextEdit *editor = new QTextEdit; QTextDocument *editorDocument = editor-document(); QTextCursor *cursor = editor-textCursor();/訪問(wèn)根框架:QTextDocument *textDoc
46、ument; QTextFrame *root = textDocument-rootFrame(); 設(shè)置根框架設(shè)置根框架QTextDocument *document = ui-textEdit-document(); /獲取文檔對(duì)象獲取文檔對(duì)象QTextFrame *rootFrame = document-rootFrame(); / 獲取根框架獲取根框架QTextFrameFormat format; / 創(chuàng)建框架格式創(chuàng)建框架格式format.setBorderBrush(Qt:red); / 邊界顏色邊界顏色format.setBorder(3); / 邊界寬度邊界寬度rootFr
47、ame-setFrameFormat(format); / 框架使用格式框架使用格式添加子框架添加子框架QTextFrameFormat frameFormat;frameFormat.setBackground(Qt:lightGray); / 設(shè)置背景顏色設(shè)置背景顏色frameFormat.setMargin(10); / 設(shè)置邊距設(shè)置邊距frameFormat.setPadding(5); / 設(shè)置填襯設(shè)置填襯frameFormat.setBorder(2);/設(shè)置邊框樣式設(shè)置邊框樣式frameFormat.setBorderStyle(QTextFrameFormat:BorderSt
48、yle_Dotted); QTextCursor cursor = ui-textEdit-textCursor(); / 獲取光標(biāo)獲取光標(biāo)cursor.insertFrame(frameFormat); / 在光標(biāo)處插入框架在光標(biāo)處插入框架文本塊文本塊 文本塊文本塊QTextBlock類為文本文檔類為文本文檔QTextDocument提供了一個(gè)提供了一個(gè)文本片段(文本片段(QTextFragment)的容器。)的容器。 一個(gè)文本塊可以看做是一個(gè)段落,但是它不能使用回車換行,一個(gè)文本塊可以看做是一個(gè)段落,但是它不能使用回車換行,因?yàn)橐粋€(gè)回車換行就表示創(chuàng)建一個(gè)新的文本塊。因?yàn)橐粋€(gè)回車換行就表示創(chuàng)
49、建一個(gè)新的文本塊。QTextBlock提供了提供了只讀接口,它是前面提到的文檔分層次的接口的一部分,如果只讀接口,它是前面提到的文檔分層次的接口的一部分,如果QTextFrame看做是一層,那么其中的看做是一層,那么其中的QTextBlock就是另一層。就是另一層。 文本塊的格式由文本塊的格式由QTextBlockFormat類來(lái)處理,它主要涉及對(duì)齊類來(lái)處理,它主要涉及對(duì)齊方式,文本塊四周的邊白,縮進(jìn)等內(nèi)容。而文本塊中的文本內(nèi)容的格方式,文本塊四周的邊白,縮進(jìn)等內(nèi)容。而文本塊中的文本內(nèi)容的格式,比如字體大小、加粗、下劃線等內(nèi)容,則由式,比如字體大小、加粗、下劃線等內(nèi)容,則由QTextCharF
50、ormat類來(lái)設(shè)置。類來(lái)設(shè)置。 遍歷框架遍歷框架 QTextDocument *document = ui-textEdit-document(); QTextFrame *frame = document-rootFrame(); QTextFrame:iterator it; / 建立建立QTextFrame類的迭代器類的迭代器 for (it = frame-begin(); !(it.atEnd(); +it) QTextFrame *childFrame = it.currentFrame();/ 獲取當(dāng)前框架的指針獲取當(dāng)前框架的指針 QTextBlock childBlock =
51、it.currentBlock(); / 獲取當(dāng)前文本塊獲取當(dāng)前文本塊 if (childFrame) qDebug() frame; else if (childBlock.isValid() qDebug() block: textEdit-document(); QTextBlock block = document-firstBlock(); / 獲取文檔的第一個(gè)文本塊獲取文檔的第一個(gè)文本塊 for (int i = 0; i blockCount(); i+) qDebug() tr(文本塊文本塊%1,文本塊首行行號(hào)為,文本塊首行行號(hào)為:%2,長(zhǎng)度為,長(zhǎng)度為:%3,內(nèi)容為:內(nèi)容為:)
52、 .arg(i).arg(block.firstLineNumber().arg(block.length() textEdit-textCursor(); QTextBlockFormat blockFormat; / 文本塊格式文本塊格式 blockFormat.setAlignment(Qt:AlignCenter); / 水平居中水平居中 cursor.insertBlock(blockFormat); / 使用文本塊格式使用文本塊格式 QTextCharFormat charFormat; / 字符格式字符格式 charFormat.setBackground(Qt:lightGra
53、y); / 背景色背景色 charFormat.setForeground(Qt:blue); / 字體顏色字體顏色 / 使用宋體,使用宋體,12號(hào),加粗,傾斜號(hào),加粗,傾斜 charFormat.setFont(QFont(tr(宋體宋體), 12, QFont:Bold, true); charFormat.setFontUnderline(true); / 使用下劃線使用下劃線 cursor.setCharFormat(charFormat); / 使用字符格式使用字符格式 cursor.insertText(tr(測(cè)試字體測(cè)試字體); / 插入文本插入文本編輯文本塊及其內(nèi)容的格式編輯文
54、本塊及其內(nèi)容的格式表格、列表和圖片表格、列表和圖片n插入表格插入表格 05/5-4 QTextCursor cursor = ui-textEdit-textCursor(); QTextTableFormat format; / 表格格式表格格式 format.setCellSpacing(2); / 表格外邊白表格外邊白 format.setCellPadding(10); / 表格內(nèi)邊白表格內(nèi)邊白 cursor.insertTable(2, 2, format); / 插入插入2行行2列表格列表格n插入列表插入列表 QTextListFormat format; / 列表格式列表格式 f
55、ormat.setStyle(QTextListFormat:ListDecimal); / 數(shù)字編號(hào)數(shù)字編號(hào) ui-textEdit-textCursor().insertList(format);n插入圖片插入圖片 QTextImageFormat format; / 圖片格式圖片格式 format.setName(logo.png); / 圖片路徑圖片路徑 ui-textEdit-textCursor().insertImage(format);表格、列表和圖片表格、列表和圖片查找功能查找功能n查找文本查找文本 05/5-5 QDialog *dlg = new QDialog(this
56、); / 創(chuàng)建對(duì)話框創(chuàng)建對(duì)話框 lineEdit = new QLineEdit(dlg); / 創(chuàng)建行編輯器創(chuàng)建行編輯器 QPushButton *btn = new QPushButton(dlg); / 創(chuàng)建按鈕創(chuàng)建按鈕 btn-setText(tr(查找下一個(gè)查找下一個(gè)); connect(btn,SIGNAL(clicked(),this,SLOT(findNext(); / 關(guān)聯(lián)信號(hào)和槽關(guān)聯(lián)信號(hào)和槽 QVBoxLayout *layout = new QVBoxLayout; / 創(chuàng)建垂直布局管理器創(chuàng)建垂直布局管理器 layout-addWidget(lineEdit); / 添加
57、部件添加部件 layout-addWidget(btn); dlg-setLayout(layout); / 在對(duì)話框中使用布局管理器在對(duì)話框中使用布局管理器 dlg-show();n查找下一個(gè)查找下一個(gè) QString string = lineEdit-text(); / 使用查找函數(shù)查找指定字符串,查找方式為向后查找使用查找函數(shù)查找指定字符串,查找方式為向后查找 bool isfind = ui-textEdit-find(string, QTextDocument:FindBackward); if(isfind) / 如果查找成功,輸出字符串所在行和列的編號(hào)如果查找成功,輸出字符串所
58、在行和列的編號(hào) qDebug() textEdit-textCursor().blockNumber() .arg(ui-textEdit-textCursor().columnNumber(); 查找功能查找功能語(yǔ)法高亮語(yǔ)法高亮 在使用在使用Qt Creator編輯代碼時(shí)可以發(fā)現(xiàn),輸入關(guān)鍵字時(shí)會(huì)顯示不同編輯代碼時(shí)可以發(fā)現(xiàn),輸入關(guān)鍵字時(shí)會(huì)顯示不同的顏色,這就是所謂的語(yǔ)法高亮。的顏色,這就是所謂的語(yǔ)法高亮。 在在Qt的富文本處理中提供了的富文本處理中提供了QSyntaxHighlighter類來(lái)實(shí)現(xiàn)語(yǔ)法高亮。類來(lái)實(shí)現(xiàn)語(yǔ)法高亮。為了實(shí)現(xiàn)這個(gè)功能,需要?jiǎng)?chuàng)建為了實(shí)現(xiàn)這個(gè)功能,需要?jiǎng)?chuàng)建QSyntaxHi
59、ghlighter類的子類,然后重新類的子類,然后重新實(shí)現(xiàn)實(shí)現(xiàn)highlightBlock()函數(shù),使用時(shí)直接將函數(shù),使用時(shí)直接將QTextDocument類對(duì)象指針類對(duì)象指針作為其父部件指針,這樣就可以自動(dòng)調(diào)用作為其父部件指針,這樣就可以自動(dòng)調(diào)用highlightBlock()函數(shù)了。函數(shù)了。 05/5-6 例如,自定義的類為例如,自定義的類為MySyntaxHighlighter,像這樣來(lái)使用:,像這樣來(lái)使用: highlighter = new MySyntaxHighlighter(ui-textEdit-document(); 這里創(chuàng)建了這里創(chuàng)建了MySyntaxHighlighte
60、r類的對(duì)象,并且使用編輯器的文檔對(duì)象指類的對(duì)象,并且使用編輯器的文檔對(duì)象指針作為其參數(shù),這樣,每當(dāng)編輯器中的文本改變時(shí)都會(huì)調(diào)用針作為其參數(shù),這樣,每當(dāng)編輯器中的文本改變時(shí)都會(huì)調(diào)用highlightBlock()函函數(shù)來(lái)設(shè)置語(yǔ)法高亮。數(shù)來(lái)設(shè)置語(yǔ)法高亮。 重新實(shí)現(xiàn)重新實(shí)現(xiàn)highlightBlock()函數(shù):函數(shù): QTextCharFormat myFormat; / 字符格式字符格式 myFormat.setFontWeight(QFont:Bold); myFormat.setForeground(Qt:green); QString pattern = bcharb; / 要匹配的字符,這里是要匹配的字符,這里是“char”單詞單詞 QRegExp expression(pattern); / 創(chuàng)建正則表達(dá)式創(chuàng)建正則
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 旅游景區(qū)環(huán)境衛(wèi)生整治方案
- 邢臺(tái)學(xué)院《環(huán)境科學(xué)概論實(shí)踐》2021-2022學(xué)年第一學(xué)期期末試卷
- 旅行社員工心理素質(zhì)提升方案
- 商場(chǎng)公廁衛(wèi)生管理方案
- 物流倉(cāng)庫(kù)出入管理制度
- 能源項(xiàng)目成本控制與管理方案
- 商用廚房消防通風(fēng)排煙設(shè)施施工方案
- 2024至2030年銅版工藝畫項(xiàng)目投資價(jià)值分析報(bào)告
- 旅游行業(yè)網(wǎng)絡(luò)意識(shí)形態(tài)推廣方案
- 城市污水處理煙氣脫硫方案
- GB/T 41837-2022溫泉服務(wù)溫泉水質(zhì)要求
- 夏商周考古課件 第4章 殷墟文化(1-3節(jié))
- HY/T 0289-2020海水淡化濃鹽水排放要求
- GB/T 34049-2017智能流量?jī)x表通用技術(shù)條件
- GB/T 26593-2011無(wú)損檢測(cè)儀器工業(yè)用X射線CT裝置性能測(cè)試方法
- 介紹濟(jì)寧的英語(yǔ)ppt
- GB/T 20721-2022自動(dòng)導(dǎo)引車通用技術(shù)條件
- 外包施工人員入場(chǎng)安全培訓(xùn)考試卷(項(xiàng)目經(jīng)理)
- 產(chǎn)科理論題庫(kù)含答案
- 纖維素的分子結(jié)構(gòu)課件
- 2023年泰安市泰山文化旅游集團(tuán)有限公司招聘筆試模擬試題及答案解析
評(píng)論
0/150
提交評(píng)論