第6章 對(duì)話框與多窗口設(shè)計(jì)
本章介紹多窗口的設(shè)計(jì)和調(diào)用問題,包括PyQt5標(biāo)準(zhǔn)對(duì)話框的使用,自定義對(duì)話框的設(shè)計(jì)和使用,如何在主窗口和對(duì)話框之間傳遞數(shù)據(jù),如何設(shè)計(jì)類似于多頁瀏覽器的多窗口程序,如何設(shè)計(jì)標(biāo)準(zhǔn)MDI(Multiple Document Interface)應(yīng)用程序等問題。
6.1 標(biāo)準(zhǔn)對(duì)話框
PyQt5為應(yīng)用程序設(shè)計(jì)提供了一些常用的標(biāo)準(zhǔn)對(duì)話框,如打開文件對(duì)話框、選擇顏色對(duì)話框、信息提示和確認(rèn)選擇對(duì)話框、標(biāo)準(zhǔn)輸入對(duì)話框等,用戶無需自己設(shè)計(jì)這些常用的對(duì)話框,可以減少程序設(shè)計(jì)工作量。
6.2 自定義對(duì)話框及其使用
自定義對(duì)話框一般從QDialog繼承,并且可以采用UI Designer可視化地設(shè)計(jì)對(duì)話框。對(duì)話框的調(diào)用一般包括創(chuàng)建對(duì)話框、傳遞數(shù)據(jù)給對(duì)話框、顯示對(duì)話框獲取輸入、判斷對(duì)話框單擊按鈕的返回類型、獲取對(duì)話框輸入數(shù)據(jù)等過程。
本節(jié)通過實(shí)例Demo6_2詳細(xì)介紹設(shè)計(jì)和使用自定義對(duì)話框的方法。
圖6-7 設(shè)置表格行數(shù)和列數(shù)的對(duì)話框
圖6-9 浮動(dòng)于主窗口上方的對(duì)話框,可交互操作
6.3 多窗口應(yīng)用程序
本節(jié)以實(shí)例Demo6_3演示多窗口應(yīng)用程序的設(shè)計(jì)。實(shí)例由項(xiàng)目模板mainWindowApp創(chuàng)建,主窗口UI文件是MainWindow.ui。又設(shè)計(jì)了兩個(gè)窗口,一個(gè)是從QWidget繼承的文本文件顯示窗口,一個(gè)是從QMainWindow繼承的表格數(shù)據(jù)編輯窗口,表格編輯窗口又可使用兩個(gè)對(duì)話框進(jìn)行表格的大小和表頭設(shè)置。
圖6-16 嵌入式和獨(dú)立的QmyFormTable窗體顯示效果
6.4 MDI 應(yīng)用程序設(shè)計(jì)
MDI應(yīng)用程序由一個(gè)主窗口和任意多個(gè)MDI子窗口組成,子窗口一般是同一個(gè)類的實(shí)例,這些MDI子窗口在主窗口里顯示,并一般共享主窗口上的工具欄和菜單等操作功能,主窗口上的操作都針對(duì)當(dāng)前活動(dòng)的MDI子窗口。
圖6-17 MDI應(yīng)用程序示例Demo6_4運(yùn)行時(shí)界面
圖6-19 多頁模式下的MDI界面
?
<上一章>????????????????? <回主頁>?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
