亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Qt 平臺(tái)的品類自適應(yīng)軟件設(shè)計(jì)實(shí)踐

        2023-07-08 06:35:44楊旺喜周洋洋周峻丞
        科技與創(chuàng)新 2023年12期
        關(guān)鍵詞:內(nèi)容用戶設(shè)計(jì)

        楊旺喜,羅 征,周洋洋,周峻丞

        (海裝駐天津地區(qū)第二軍事代表室,天津 300308)

        在設(shè)計(jì)品類管理軟件時(shí),如果將品類信息硬編碼到軟件中,當(dāng)品類信息有更改時(shí),就不得不修改和重新編譯發(fā)布軟件,即軟件對(duì)品類參數(shù)無(wú)可擴(kuò)展性。

        現(xiàn)將品類管理軟件只設(shè)計(jì)為一個(gè)軟件框架[1-3],讓它可以自適應(yīng)讀取多級(jí)品類信息且可支持用戶選擇、實(shí)時(shí)統(tǒng)計(jì)和數(shù)據(jù)保存。圖1 為無(wú)配置文件時(shí)軟件啟動(dòng)后的截圖,圖2 為品類配置文件截圖,圖3 為軟件加載品類配置文件后自適應(yīng)加載信息后的截圖。

        圖1 無(wú)配置文件時(shí)軟件啟動(dòng)后截圖

        圖2 配置文件示例

        圖3 軟件加載圖2 所示的配置文件后的截圖

        1 軟件框架設(shè)計(jì)

        軟件采用3 級(jí)品類管理方式[4-5],第一級(jí)品類通過(guò)工具欄上的下拉框進(jìn)行選擇,第二級(jí)品類通過(guò)軟件上的Tab 頁(yè)分類展示,第三級(jí)品類在各Tab 頁(yè)上具體呈現(xiàn)。3 級(jí)品類的具體內(nèi)容都通過(guò)配置文件具體定義,軟件只提供框架功能,不定義具體品類內(nèi)容。軟件框架如圖4 所示。

        圖4 軟件框架圖

        2 各級(jí)品類設(shè)計(jì)

        2.1 第一級(jí)品類設(shè)計(jì)

        第一級(jí)品類在軟件上設(shè)置為利用工具欄進(jìn)行下拉選擇(QComboBox),下拉框的內(nèi)容在軟件啟動(dòng)時(shí)通過(guò)讀取配置文件夾中配置文件的名稱而定,如配置文件夾中有classA.conf、classB.conf 和classC.conf 共3個(gè)配置文件,軟件讀取后,第一級(jí)品類下拉框中被填入classA、classB 和classC 這3 個(gè)待選項(xiàng)。

        當(dāng)?shù)谝患?jí)品類下拉框中的某一個(gè)品類被選擇后,軟件首先析構(gòu)當(dāng)前所加載的品類內(nèi)容,然后讀取被選品類對(duì)應(yīng)的配置文件,按照配置文件的內(nèi)容,構(gòu)建Tab頁(yè)及展示每個(gè)Tab 頁(yè)的內(nèi)容。

        2.2 第二級(jí)品類設(shè)計(jì)

        在第一級(jí)品類配置文件中,以中括號(hào)將第二級(jí)品類名稱括起來(lái),如“[sub-classX]”,以此作為各第二級(jí)品類的分隔和第二級(jí)品類的名稱。軟件將以第二級(jí)品類的數(shù)量創(chuàng)建對(duì)應(yīng)數(shù)量的Tab 頁(yè),將Tab 頁(yè)重命名為第二級(jí)品類名稱(無(wú)中括號(hào)),并將默認(rèn)Tab 頁(yè)設(shè)為第一個(gè)Tab 頁(yè)。

        2.3 第三級(jí)品類設(shè)計(jì)

        在第一級(jí)品類配置文件中,每2 個(gè)第二級(jí)品類名稱之間的行就是第三級(jí)品類的內(nèi)容(屬于上一個(gè)第二級(jí)品類),其中每一行是一種品類,設(shè)計(jì)如下(舉例):

        “工服C;203.0;160,165,170,175,180,185,190;86,88,90,92,94,96,98,100,104,108,110;3”

        上面的例子表示,第三級(jí)品類之一為“工服C”,其單價(jià)為203.0 元,可選衣長(zhǎng)有“160,165,170,175,180,185,190”這7 個(gè)尺碼,可選衣寬為“86,88,90,92,94,96,98,100,104,108,110”這11 個(gè)尺碼,最多可選數(shù)量為3件。這幾個(gè)參數(shù)用分號(hào)分隔。

        軟件的每個(gè)Tab 頁(yè)內(nèi)最外層是一個(gè)列布局(QVlayout),以實(shí)現(xiàn)軟件窗口組件自適應(yīng)窗口大小。該列布局里面是一個(gè)滾動(dòng)窗口(QScrollArea),以實(shí)現(xiàn)有較多第三級(jí)品類內(nèi)容時(shí)可以通過(guò)滾動(dòng)鼠標(biāo)或點(diǎn)擊下移按鈕展示所有內(nèi)容。在滾動(dòng)窗口中又是一個(gè)列布局,以存放具體的第三級(jí)品類內(nèi)容。

        軟件解析第三級(jí)品類的行內(nèi)容(以上面第三級(jí)品類為例),針對(duì)每一行,在軟件創(chuàng)建一個(gè)行布局。行布局中第一個(gè)組件是QCheckBox(復(fù)選框),以供用戶選擇該品類;行布局的第二個(gè)組件是QLable(標(biāo)簽),對(duì)應(yīng)于價(jià)格;行布局中的第三個(gè)組件是QLable(標(biāo)簽),用于展示該品類的照片;行布局的第四個(gè)組件是一個(gè)列布局,列布局的2 個(gè)組件都是行布局,行布局中是多個(gè)QRadioButton(單選框),對(duì)應(yīng)于衣長(zhǎng)和衣寬尺碼選項(xiàng);行布局的第五個(gè)組件是一個(gè)QSpinBox(自旋框),它可選數(shù)字上限為第三級(jí)品類配置的最后一個(gè)參數(shù)。

        每2 個(gè)第三級(jí)品類的行布局之間用橫線分割,以增加軟件的可讀性。

        2.4 第三級(jí)品類圖片自適應(yīng)設(shè)計(jì)

        將第三級(jí)品類圖片保存為配置文件中第三級(jí)品類名稱,由軟件解析到品類名稱后,據(jù)此名稱從軟件的資源文件夾加載對(duì)應(yīng)的圖片,具體為先由QFile 將圖片文件讀取到字節(jié)序列變量(QByteArray)中,再將此字節(jié)序列變量轉(zhuǎn)化成一個(gè)QImage,最后將它轉(zhuǎn)化為QPixmap(位圖)。

        2.5 第三級(jí)品類配置字段不同時(shí)的設(shè)計(jì)

        當(dāng)?shù)谌?jí)品類的配置行字段數(shù)量不同時(shí),軟件如何自適應(yīng)讀取呢?如有這樣一個(gè)配置行:

        “工服帽B;62.23;59,60,61,62,63,64,65;1”

        相較于前面“工服C”的例子,“工服帽”僅有一個(gè)尺碼型號(hào),其他品類可能只有“均碼”這樣的尺碼描述。解決辦法是軟件讀取配置時(shí)需要判斷分號(hào)的個(gè)數(shù),以此來(lái)判斷有幾個(gè)尺碼維度,進(jìn)而決定行布局的第四個(gè)組件是否要?jiǎng)?chuàng)建為一個(gè)列布局。

        2.6 第一級(jí)品類在線切換設(shè)計(jì)

        在第一級(jí)品類被選擇后,所有的第二、三級(jí)品類信息都會(huì)被加載到軟件框架中,第二級(jí)品類內(nèi)容的切換通過(guò)點(diǎn)擊不同的Tab 頁(yè)就可以實(shí)現(xiàn);但第一級(jí)品類的切換,涉及到軟件析構(gòu)當(dāng)前頁(yè)面內(nèi)容再重新加載新的配置文件,過(guò)程會(huì)復(fù)雜很多。

        首先是遍歷每個(gè)Tab 頁(yè),獲取每個(gè)Tab 頁(yè)里的布局,繼而獲取該布局中的第一個(gè)子元素,如果該子元素里有布局,則采用遞歸的方式繼續(xù)獲取里面的子布局,否則獲取子布局中的QWidget(窗口),析構(gòu)此Widget,最后要把所有的Tab 頁(yè)進(jìn)行析構(gòu)。Tab 頁(yè)進(jìn)行析構(gòu)的執(zhí)行流程如圖5 所示。

        圖5 Tab 頁(yè)進(jìn)行析構(gòu)的執(zhí)行流程圖

        3 統(tǒng)計(jì)功能設(shè)計(jì)

        通過(guò)上面的設(shè)計(jì),可以實(shí)現(xiàn)軟件框架自適應(yīng)讀取品類配置文件,但軟件的目的是為了實(shí)時(shí)統(tǒng)計(jì)(如實(shí)時(shí)顯示用戶所選品類總數(shù)、總價(jià)等)和保存數(shù)據(jù)。

        統(tǒng)計(jì)功能的實(shí)現(xiàn),需要在創(chuàng)建第三級(jí)品類QCheckBox(復(fù)選框)和QSpinBox(自旋框)時(shí)注冊(cè)這2 個(gè)組件信號(hào)的槽函數(shù),當(dāng)用戶選擇某個(gè)品類時(shí),被觸發(fā)的槽函數(shù)首先遍歷本Tab 頁(yè)所有的品類行布局,直到找到發(fā)出信號(hào)的品類,然后從該行找到具體內(nèi)容(如價(jià)格和數(shù)量等),將計(jì)算出的單項(xiàng)值合到軟件所保存的總體值中,以實(shí)時(shí)為用戶顯示統(tǒng)計(jì)值。對(duì)于取消勾選的情況,也是類似的。

        4 保存功能設(shè)計(jì)

        遍歷所有Tab 頁(yè),遍歷Tab 頁(yè)中與第三級(jí)品類對(duì)應(yīng)的行布局,進(jìn)一步解析出代表品類名的復(fù)選框及表示所選數(shù)量的自旋框,以判斷用戶是否選擇了該品類及獲取用戶所選的數(shù)量,這些信息綜合起來(lái)就構(gòu)成了要保存的材料。

        將用戶所選保存到結(jié)果文檔中,用戶需要在軟件框架中輸入特征信息,如身份、時(shí)間、組別等,然后以用戶輸入的特征信息為文件名創(chuàng)建文件,接著將軟件中用戶所選的信息及統(tǒng)計(jì)結(jié)果保存到該文件中。

        5 讀取和更改保存的文件

        軟件用戶在保存結(jié)果文件后,如果想更改之前的選擇清單,可以在軟件框架中通過(guò)“文件→打開(kāi)”選項(xiàng)導(dǎo)入之前生成的結(jié)果文件,以使軟件顯示上次清單內(nèi)容。其關(guān)鍵點(diǎn)為:依據(jù)清單中的第二級(jí)品類名打開(kāi)對(duì)應(yīng)的Tab 頁(yè)面,依據(jù)清單中的第三級(jí)品類名定位到具體的品類布局行,繼而將第三級(jí)品類復(fù)選框置為勾選狀態(tài),選定其他配置(如尺碼),設(shè)置所選數(shù)量。再次保存文件時(shí)設(shè)計(jì)為提醒用戶是否覆蓋,或者重命名。

        6 結(jié)束語(yǔ)

        針對(duì)在軟件中硬編碼品類信息的缺點(diǎn),本文設(shè)計(jì)了可以品類自適應(yīng)的軟件框架,以3 級(jí)品類管理為例,介紹了整體軟件框架和各級(jí)品類設(shè)計(jì)、統(tǒng)計(jì)及保存功能,詳細(xì)介紹了第一、二、三級(jí)品類在軟件上的實(shí)現(xiàn)方法及第一級(jí)品類的在線切換方法,是一種參數(shù)自適應(yīng)式的軟件設(shè)計(jì)思路,對(duì)其他類似軟件在設(shè)計(jì)上有一定的借鑒參考意義。

        猜你喜歡
        內(nèi)容用戶設(shè)計(jì)
        內(nèi)容回顧溫故知新
        瞞天過(guò)?!律O(shè)計(jì)萌到家
        設(shè)計(jì)秀
        海峽姐妹(2017年7期)2017-07-31 19:08:17
        有種設(shè)計(jì)叫而專
        Coco薇(2017年5期)2017-06-05 08:53:16
        關(guān)注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        主要內(nèi)容
        臺(tái)聲(2016年2期)2016-09-16 01:06:53
        關(guān)注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        關(guān)注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        如何獲取一億海外用戶
        設(shè)計(jì)之味
        舒適廣告(2008年9期)2008-09-22 10:02:48
        久久久亚洲熟妇熟女av| 国产在线视欧美亚综合| 精品国产日韩无 影视| 91精品国产九色综合久久香蕉| 精品偷自拍另类在线观看| 国产成年女人特黄特色毛片免| 五月丁香六月综合激情在线观看| 精品少妇白浆一二三区| 女女同恋一区二区在线观看| 欧美人妻日韩精品| 亚洲综合AV在线在线播放| 亚洲视频一区二区蜜桃| 丝袜美腿av在线观看| 日夜啪啪一区二区三区| 亚洲国产精品国自产电影| 中文字幕人妻一区色偷久久| 日本高清一级二级三级| 人人爽久久涩噜噜噜av| 一本久道久久综合五月丁香| 黄片亚洲精品在线观看| 亚洲国产精品成人久久久| 亚洲欧洲∨国产一区二区三区| 尤物无码一区| 久久精品国产亚洲av豆腐| 中文字幕人妻伦伦| 成年女人毛片免费视频| 一区二区av日韩免费| 中文有码人妻字幕在线| 少妇无码av无码一区| 亚洲国产99精品国自产拍| 亚洲中文字幕一二区精品自拍| 国产成人午夜福利在线观看| 久久精品国产亚洲av忘忧草18| 中文字幕一区二区三区日韩网| 中文字幕在线乱码亚洲| 一本色道久久88精品综合| 国产日b视频| 亚洲高清精品一区二区| 护士的小嫩嫩好紧好爽| 亚洲成在人线av| 久久99热精品免费观看麻豆|