色播在线,成人影音av

亚洲精品少妇-jizzzxxxx-日韩欧美理论片-99亚洲精品-69久久成人精品-a级黄毛片-伦伦影院午夜理伦片-激情久久av-日本亚洲最大的色成网站www-永久免费看片-国外成人免费视频-日韩成人av在线播放-99精品视频免费-亚洲激情第一页-色丁香婷婷-午夜影院在线看-观看免费av

產(chǎn)品咨詢熱線 400-83-29299     搜索     русский язык  |  English
x

公司新聞 行業(yè)資訊

首頁 > 新聞資訊 > 水刀研究院
圖形實(shí)體手動(dòng)排序
來源: 時(shí)間:2021-06-24 瀏覽:4895
單個(gè)排序,列表排序,鼠標(biāo)拾取排序這三種排序方式都是在進(jìn)入實(shí)體排序狀態(tài)下才會(huì)被激活。
       單個(gè)排序,列表排序,鼠標(biāo)拾取排序這三種排序方式都是在進(jìn)入實(shí)體排序狀態(tài)下才會(huì)被激活。單個(gè)排序、列表排序、及鼠標(biāo)拾取排序按鈕都設(shè)計(jì)成菜單欄“Modify的子按鈕,在“Modify”菜單要顯示的時(shí)候,就會(huì)發(fā)射出 about To Show()信號(hào),從而調(diào) 用 “ 顯 示 實(shí) 體 排 序 ” 槽 函 數(shù) slot Modify Menu About To Show() , 在 函 數(shù) 里 判 斷
display Entities Order Action 是否處于選中狀態(tài),如果處于選中狀態(tài),則列表排序list Sort Action 的 enable 屬性變?yōu)?nbsp;true ,列表排序按鈕被激活,而對(duì)于單個(gè)排序single Sort Action 和鼠標(biāo)拾取排序 mouse Sort Action 還需判斷選中的實(shí)體數(shù)量,只有當(dāng)選中的實(shí)體數(shù)量為 時(shí),single Sort Action 的 enable 屬性才變?yōu)?nbsp;true,單個(gè)排序按鈕被激活,而只有當(dāng)選中的實(shí)體數(shù)量大于 時(shí),mouse Sort Action 的 enable 屬性才變?yōu)?nbsp;true

,鼠標(biāo)拾取排序按鈕被激活。具體每一個(gè)實(shí)體對(duì)應(yīng)的一個(gè)序號(hào)的實(shí)現(xiàn)函數(shù)都是drawTextp(intx1,  inty1,  const  QString&  text),只是對(duì)于不同種類實(shí)體調(diào)用的參數(shù)不同而已 , 例如直線: drawTextp(midPoint.x+20,midPoint.y+20,QString::number(painter->m_n Indx)),其中調(diào)用的實(shí)際參數(shù)是直線段中點(diǎn) 坐標(biāo)+20、坐標(biāo)+20、實(shí)體在容器中的序號(hào)。具體手動(dòng)排序方式界面設(shè)計(jì)與實(shí)現(xiàn)將在下面每一小節(jié)中進(jìn)行具體的介紹。

1)單個(gè)排序

       單個(gè)實(shí)體排序,即一次只能對(duì)一個(gè)實(shí)體進(jìn)行排序操作。首先要進(jìn)入實(shí)體排序狀態(tài),然后選中單個(gè)實(shí)體,“單個(gè)排序”按鈕才會(huì)被激活,單擊“單個(gè)排序”按鈕,彈出單個(gè)實(shí)體排序?qū)υ捒颍x擇想要的加工序號(hào),點(diǎn)擊“OK”即可。單個(gè)實(shí)體排序操作的流程圖如圖 3.4 
所示。自定義圖形實(shí)體或是從文件中讀取的圖形實(shí)體都會(huì)被存到類RS_Entity Container 中的成員 QList<RS_Entity *> entities 中,通過在類中定義一些函數(shù)(方法)獲取實(shí)體的信息,比如獲取容器中的第一個(gè)實(shí)體指針,最后一個(gè)實(shí)體指針,給定序號(hào)指定的實(shí)體指針,因此可以得到當(dāng)前實(shí)體的序號(hào),然后通過 swap Entity(int index,  RS_Entity  *e)函數(shù)將被選中的實(shí)體指針插到指定的位置,其它的實(shí)體指針依次后移一個(gè)位置,并去除原來實(shí)體指針。單個(gè)實(shí)體排序的對(duì)話框及用到 Qt 中的一些組件如圖 3.5 所示。單個(gè)實(shí)體序號(hào) 排序前和排序后的效果圖分別如圖 3.6 和圖 3.7 所示。

 


2)列表排序
      列表排序,即一次可以對(duì)多個(gè)實(shí)體同時(shí)進(jìn)行操作。首先要進(jìn)入實(shí)體排序狀態(tài),單擊“列表排序”按鈕,彈出列表排序?qū)υ捒颍x擇實(shí)體序號(hào),然后點(diǎn)擊“向上移”按鈕,或是“向下移”按鈕,或是“移到最前”按鈕,或是“移到最后”按鈕,最后點(diǎn)擊“OK”即可。列表排序的對(duì)話框及用到 Qt 中的一些組件如圖 3.8 所示。對(duì)話框中每一種按鈕操作的響應(yīng)都是通過信號(hào)和槽來實(shí)現(xiàn)的,例如“向上移”按鈕,通過槽函數(shù) slot Step Up()來實(shí)現(xiàn)整個(gè)操作。槽函數(shù) slot Step Up()主要用到函數(shù) swap Entity()(被選中的實(shí)體排到指定的位置,并去除原來的),函數(shù) swap()(交換兩個(gè)數(shù))等,列表排序?qū)崿F(xiàn)的過程如圖 3.9 所示。列表排序前和排序后的效果圖分別如圖 3.10 和圖 3.11 示。 

3)鼠標(biāo)拾取排序
       當(dāng)組成輪廓實(shí)體數(shù)量較多時(shí),此時(shí)用單個(gè)排序或列表排序都會(huì)很長(zhǎng)時(shí)間,效率不高,所以鼠標(biāo)拾取排序是就是為了簡(jiǎn)便用戶操作,提高效率而開發(fā)的。鼠標(biāo)拾取排序操作的流程是:首先要進(jìn)入實(shí)體排序狀態(tài),然后選中需要重排實(shí)體,“鼠標(biāo)拾取排序”按鈕才會(huì)被激活,單擊“鼠標(biāo)拾取排序”按鈕,彈出鼠標(biāo)拾取排序?qū)υ捒颍瑢?duì)話框中提示輸入開始排序的位置,此數(shù)值小于或等于被選中的最小實(shí)體序號(hào),設(shè)置完數(shù)值點(diǎn)擊“OK”即可進(jìn)入鼠標(biāo)單擊排序中,然后單擊實(shí)體,所有需要重排的實(shí)體被單擊完后,彈出是否按照此排序排序的對(duì)話框,點(diǎn)擊“OK”即可。代碼實(shí)現(xiàn)的思路是:建立三個(gè)臨時(shí)表 QList<RS_Entity*>temple , QList<RS_Entity*>temple Entities QList<RS_Entity*>temple Entities2,通過 temple 等于創(chuàng)建實(shí)體時(shí)放入的鏈表 
entities 到容器中的實(shí)體指針,遍歷鏈表 temple 中的實(shí)體指針,若實(shí)體被選中,則將實(shí)體指針放入鏈表 temple Entities 中,并將實(shí)體設(shè)置為不選中狀態(tài),然后對(duì)實(shí)體進(jìn)行單擊操作(若實(shí)體初始為不選中狀態(tài),單擊實(shí)體一次,實(shí)體由不選中狀態(tài)變成選中狀態(tài);若實(shí)體初始為選中狀態(tài),單擊實(shí)體一次,實(shí)體由選中狀態(tài)變成不選中狀態(tài),實(shí)體處于選中狀態(tài)時(shí)默認(rèn)呈虛紅線顯示,實(shí)體處于不選中狀態(tài)時(shí)默認(rèn)呈白實(shí)線顯示),實(shí)體處于選中狀態(tài),判斷實(shí)體是否處于選中狀態(tài),若是,就將實(shí)體指針加入鏈表 temple Entities2中并移除原來鏈表 temple Entities 中的實(shí)體指針,判斷是否遍歷完所有需要重排的實(shí)體指針(即鏈表 
temple Entities 是否為空),若是,就遍歷鏈表 temple Entities2 中實(shí)體指針,移除鏈表 entities 中的實(shí)體指針并將鏈表 temple Entities2 中實(shí)體指針插入到鏈表entities 中。整個(gè)鼠標(biāo)拾取排序操作的流程圖如圖 3.12 所示,鼠標(biāo)拾取排序前后的效果圖分別如圖 3.13 和圖 3.14 所示,代碼實(shí)現(xiàn)的流程圖如圖 3.15 所示。
 



上一條:圖形實(shí)體自動(dòng)排序
下一條:圖形實(shí)體換向的設(shè)計(jì)與實(shí)現(xiàn)
友情鏈接:
版權(quán)所有 Copyright 2019-2025 遼ICP備2021002461號(hào)-1
首頁
產(chǎn)品中心
電話咨詢
吉安县| 福安市| 上林县| 中阳县| 靖安县| 杭锦后旗| 弥勒县| 柳州市| 新竹县| 凤台县| 抚顺县| 岗巴县| 宁都县| 泸溪县| 唐海县| 竹山县| 江陵县| 新源县| 黎城县| 丽江市| 景泰县| 香河县| 锡林浩特市| 洛扎县| 策勒县| 日土县| 平武县| 安阳市| 漳浦县| 北票市| 汾西县| 峨山| 闽侯县| 郎溪县| 江山市| 托克逊县| 盐山县| 道孚县| 胶州市| 大渡口区| 衡水市|