<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      使用PySide6/PyQt6或者WxPython實現對列表界面和樹列表界面的整合處理

      在之前隨筆《使用PySide6/PyQt6實現Python跨平臺通用列表頁面的基類設計》中也介紹過對于基于Python對桌面應用開發的處理,針對常規列表界面的基類做了封裝,以便適應比較豐富且彈性化界面的要求,并且減少子類的代碼處理,本篇隨筆進一步探討使用PySide6/PyQt6或者WxPython實現對列表界面和樹列表界面的整合處理這個主題。

      1、使用PySide6/PyQt6實現對列表界面和樹列表界面的整合處理

       基于重用及減少子類代碼的目的,我們抽象了列表界面的基類,我們業務列表界面只需要繼承基類,并在構造函數提供相應的信息即可比較彈性化的處理界面多元化的問題。

      對于常規的列表界面,一般包括查詢條件、列表界面(包括分頁信息)等元素,如下界面所示。

      image

      實際業務的界面可能如下所示。

      使用PySide6/PyQt6 的桌面端開發的時候,我們初始化業務類,并傳遞相關參數給基類列表界面構造處理即可,如下構造函數處理所示。

      image

       

      而有時候,界面上有時候需要搭配樹列表進行快速查詢或展示的需要,因此也需要在基類中進行一定的抽象處理,以便子類能進一步減少代碼。

      那么我們通過參數條件進行指定,如果條件符合,那么構建樹列表界面即可。

      image

      如用戶列表界面中,我們需要展示用戶部門、用戶角色的分類信息,如下所示。

      用戶管理界面的列表界面如下所示。

      那么我們只需要在子類的構造函數處理上,我們只需要設置參數 use_left_panel = True,并且實現 create_tree_panels 函數即可。

      我們在基類中和子類的分工中,基類剝離實際業務具體細節,而在高緯度上進行內容的組合即可。

      如在基類窗體中,其中的_create_content_panel 是基類構建主查詢面板內容的邏輯,其中包括輸入條件展示、常見按鈕顯示、以及列表、分頁欄目等。

      基類負責組合這些元素在一起即可,具體細節下沉到子類進行處理。

      image

       如對于用戶列表界面的樹列表界面,我們只需要在子類FrmUser中重寫函數 create_tree_panels 即可,然后在通過構造函數創建兩個自定義樹列表控件即可,如下所示。

      image

      可以看到界面代碼比較簡潔,關注點只需要集中在創建樹列表即可。

       那么運行后就會在基類自動組裝中,會展示到主列表界面的左側了。

      image

       雖然我們在創建樹列表的時候,會創建對應的右鍵菜單,如下界面所示。

      image

      不過有時候為了直觀功能的展示,我們可能希望在樹列表的頂部增加一些常規的按鈕,如新增、刷新等,那么子類如何進階來實現了。

      那么我們可以對樹列表控件進行進一步的封裝下,增加一個函數來處理下即可,如下所示。

      image

      然后在封裝的函數中進一步包裝下界面后返回給字典集合即可。

      image

       整合后界面就可以看到新增的按鈕集合了,這樣具體細節還是交給子類,父類沒有進行干涉,邏輯和細節分離。

      image

       

      2、使用WxPython實現對列表界面和樹列表界面的整合處理

      對于上面的使用PySide6/PyQt6實現樹列表+常規列表的展示處理,在使用WxPython 的桌面端開發的時候,也是類似的處理方式。

      業務列表窗體界面一般也是分為兩個部分

      對于常規的展示列表界面,列表界面一般分為查詢區、列表界面展示區和分頁信息區,我們把它分為兩個主要的部分,如下界面所示。

      在開始的用戶界面如下所示。

      我們在父類窗體中定義一個開關變量,用來開啟或者關閉左側樹列表面板的,如下代碼所示。

      這樣構建樹列表就交給函數 create_tree_panels 實現即可,它會構建一到多個的樹列表,父界面窗體負責整合它們顯示即可。

      對于業務的客戶信息列表界面,生成的代碼如下所示(以客戶信息表為例):

      對于上面用戶業務界面來說,也是類似PySide/PyQt的界面代碼,因為我們為基類的接口提供了類似的實現。

      同樣來說,如果我們需要再樹列表的頂部增加一些操作按鈕顯示,那么使用對應的封裝函數來返回一個新的面板即可。如下代碼所示。

      image

       具體的封裝函數,我們在WxPython項目類中實現即可,基本上沒有太多的差異。

      image

       最后在WxPython項目的顯示界面效果如下所示。

      image

       

      可以看到,不管是WxPython的界面,還是PySide/PyQt的運行界面,在列表窗體的基類,相同的抽象函數處理邏輯下,都非常的方便,處理的代碼也很類似,因此掌握兩個不同Python的組件UI的界面開發,在開發框架的友好加持下,會變得非常方便和簡便,開發項目起來,會事半功倍,更不用說會有代碼生成工具上的支持了。

      image

      選擇相關的數據表后,一鍵生成相關的代碼,如下所示。

       

      posted on 2025-09-10 11:09  伍華聰  閱讀(421)  評論(0)    收藏  舉報

      導航

      主站蜘蛛池模板: 九九综合va免费看| 精品婷婷色一区二区三区| 午夜大尺度福利视频一区| 久久99九九精品久久久久蜜桃 | 一区二区三区鲁丝不卡| 亚洲国产欧美在线观看片| 国内精品视频一区二区三区| 武陟县| 男人天堂亚洲天堂女人天堂| 免费a级毛片无码av| 色播久久人人爽人人爽人人片av | 亚洲精品二区在线播放| 中文字幕在线日韩| 国产AV巨作丝袜秘书| 成年女人黄小视频| 国产高清吹潮免费视频| 精品无码国产日韩制服丝袜| 中文字幕第55页一区| 久久国产乱子精品免费女| 无码丰满人妻熟妇区| 福利视频在线播放| 丰满人妻跪趴高撅肥臀| 无码日韩精品一区二区三区免费| 国产一区二区三区免费观看| 爱啪啪精品一区二区三区| 极品粉嫩小泬无遮挡20p| JIZZJIZZ国产| 国产系列丝袜熟女精品视频 | 色综合网天天综合色中文| 大香蕉av一区二区三区| www插插插无码视频网站| 日本九州不卡久久精品一区| 欧美人与禽2o2o性论交| 国产粉嫩高中无套进入| 国产人妇三级视频在线观看| 国产一区二区日韩经典| 亚洲日本va午夜在线电影| 韩国无码av片在线观看| 无码免费大香伊蕉在人线国产| 亚洲欧美日韩人成在线播放| 国产在线拍揄自揄拍无码|