IM客戶端頭像設(shè)置和群組創(chuàng)建模塊詳細(xì)設(shè)計(jì).doc_第1頁(yè)
IM客戶端頭像設(shè)置和群組創(chuàng)建模塊詳細(xì)設(shè)計(jì).doc_第2頁(yè)
IM客戶端頭像設(shè)置和群組創(chuàng)建模塊詳細(xì)設(shè)計(jì).doc_第3頁(yè)
IM客戶端頭像設(shè)置和群組創(chuàng)建模塊詳細(xì)設(shè)計(jì).doc_第4頁(yè)
IM客戶端頭像設(shè)置和群組創(chuàng)建模塊詳細(xì)設(shè)計(jì).doc_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Pic窗體:1主要功能:實(shí)現(xiàn)選擇圖片作為用戶自定義頭像圖片。2具體設(shè)計(jì):由Dialog窗體點(diǎn)擊用戶頭像彈出,此窗體彈出對(duì)話框供用戶選擇本地png圖片文件。3流程圖:3.1 選擇文件流程圖:開(kāi)始選中圖片是否確定結(jié)束修改用戶頭像信息并寫入xml文件結(jié)束是否 3.2 文件選擇函數(shù)調(diào)用與實(shí)現(xiàn):主要涉及文件pic.h pic.cpp pic.ui彈出pic窗體后,當(dāng)點(diǎn)選打開(kāi)文件的時(shí)候,彈出文件選擇對(duì)話框:設(shè)置私有變量 QString user_name; /用戶名 bool isOldUser; /用戶是否存在于xml文件中 QString file_path; /頭像文件路徑 QString file_name; /頭像文件名字槽函數(shù) void on_choose(QListWidgetItem *); /選中文件時(shí)調(diào)用處理 void on_pushButton_ok_clicked(); /確定選擇時(shí)調(diào)用出去 void on_pushButton_open_clicked(); /點(diǎn)選打開(kāi)文件按鈕是調(diào)用處理本模塊中一共涉及4個(gè)函數(shù):(1)void Pic:on_pushButton_open_clicked()(2)void Pic:on_pushButton_ok_clicked()(3)void Pic:on_choose(QListWidgetItem *item)(4)void Pic:isXmlWrited() 函數(shù)的調(diào)用情況為: 當(dāng)點(diǎn)擊打開(kāi)文件時(shí)調(diào)用(1)。 當(dāng)點(diǎn)擊pic對(duì)話框中的確認(rèn)時(shí)調(diào)用(2)。 當(dāng)選擇頭像文件后點(diǎn)擊頭像文件選擇對(duì)話框中的確定按鈕時(shí)調(diào)用(3)或者當(dāng)雙擊listwidget中的頭像文件時(shí)發(fā)出信號(hào),(3)作為槽函數(shù)調(diào)用。 當(dāng)點(diǎn)擊pic對(duì)話框中確認(rèn)時(shí),由(1)來(lái)調(diào)用(4)。3.2.1 void Pic:on_pushButton_open_clicked()函數(shù)獲取用戶所選擇的文件路徑和文件名,并在pic窗體的listWidget 區(qū)域顯示出所選擇的圖片: QFileDialog s; file_path = s.getOpenFileName /彈出對(duì)話框并獲取文件路徑和文件名 (this, tr(選擇圖片), /home, tr(Images (*.png *.xpm *.jpg); file_name=file_path.mid( file_path.lastIndexOf(/)+1);把獲取到的用戶選擇文件顯示在listWidget 控件里QListWidgetItem * listItem =new QListWidgetItem( QIcon(file_path), file_name, ui-listWidget, 0); ui-listWidget-addItem(listItem); ui-listWidget-setCurrentItem(listItem);當(dāng)用戶確認(rèn)選擇時(shí),將用戶選擇的信息寫入userhead.xml 文件中。3.2.2 void Pic:on_pushButton_ok_clicked() 本函數(shù)為用戶確認(rèn)選擇函數(shù),通過(guò)本函數(shù)調(diào)用 isXmlWrited()來(lái)處理用戶選擇信息。isXmlWrited()函數(shù)中首先對(duì)用戶userhead.xml 是否存在進(jìn)行判定,若存在,則查找是否存在此用戶信息,存在則修改相應(yīng)的用戶頭像信息。不存在則添加該用戶頭像信息。若xml文件不存在,則創(chuàng)建并寫入該用戶信息到xml文件中。xml結(jié)構(gòu)圖示: / root-username1 / -headpath / -headpath_0 / -headpath_1 / -. / -headname / -headname_0 / -headname_1 / -. / -nowhead / -username2每個(gè)用戶對(duì)應(yīng)多套頭像本地路徑和圖像名,但是用戶所使用的當(dāng)前頭像為nowhead中的路徑值。QFile:exists(userhead.xml) /判斷用戶頭像信息xml文件是否存在 true表示存在。用戶頭像路徑本地確定修改后,需要上傳到服務(wù)器上,并更新其他用戶列表中的用戶頭像信息。sendUserHead();(未實(shí)現(xiàn),待實(shí)現(xiàn),否則用戶僅能讀取到本地路徑的頭像修改)用戶頭像的更改也要同步到其他窗體同步修改用戶頭像。3.2.3 void Pic:on_choose(QListWidgetItem *item)本軟件系統(tǒng)中默認(rèn)用戶擁有以下兩套頭像,該頭像文件存放在debug文件的res目錄下,當(dāng)用戶選擇系統(tǒng)中默認(rèn)頭像時(shí),判斷l(xiāng)istwidget 中所選擇的為默認(rèn)頭像時(shí),修改當(dāng)前的file_path和file_name。 if(item-text()=Female.png) file_name=Female.png; file_path=./res/Female.png; else if(item-text()=Male.png) file_name=Male.png; file_path=./res/Male.png; 用戶頭像的顯示控件為一個(gè)flat屬性為true的pushbutton,設(shè)置pushbutton的icon為所選擇的listwidget的item的icon值即可顯示:此項(xiàng)設(shè)置在槽函數(shù)on_choose(QListWidgetItem *); 中實(shí)現(xiàn)。 ui-pushButton_pic-setIcon(item-icon();在pic的構(gòu)造函數(shù)中關(guān)聯(lián)兩個(gè)信號(hào)和槽函數(shù) connect(ui-listWidget,SIGNAL(doubleClicked(QModelIndex),this,SLOT(on_pushButton_ok_clicked(); connect(ui-listWidget,SIGNAL(itemClicked(QListWidgetItem*),this,SLOT(on_choose(QListWidgetItem *);Creategroup窗體:本窗體涉及到的文件有creategroup.h creategroup.cpp creategroup.ui涉及到3個(gè)槽函數(shù): void on_pushButton_back_clicked(); /點(diǎn)擊上一步按鈕 void on_pushButton_clicked(); /點(diǎn)擊下一步按鈕 void on_checkItem(QTreeWidgetItem*,int); /選中checkItem時(shí)涉及到的控件: treeWidget /顯示組織結(jié)構(gòu) listWidget /顯示選擇的內(nèi)容 提供用戶選擇 stackedWidget /多頁(yè)效果 Pushbutton /按鈕觸發(fā)事件 lineEdit /編輯群名 textEdit /編輯群公告在構(gòu)造函數(shù)中首先初始化樹(shù)形控件的信息:ui-treeWidget-setColumnCount(1); /設(shè)置列數(shù)ui-treeWidget-setHeaderLabel(tr(選擇聯(lián)系人); /設(shè)置頭的標(biāo)題把從服務(wù)器中獲取到的組織結(jié)構(gòu)圖顯示在樹(shù)形控件中。QTreeWidgetItem *Item1= new QTreeWidgetItem(ui-treeWidget,QStringList(QString(tr(財(cái)務(wù)部);QTreeWidgetItem *Item1_1=new QTreeWidgetItem(Item1,QStringList(QString(tr(king%1).arg(i);Item1_1-setFlags(Item1_1-flags()|Qt:ItemIsUserCheckable); /tree checkboxItem1_1-setCheckState(0,Qt:Unchecked);Item1_1-setIcon(0,QIcon(res/Female.png);Item1-addChild(Item1_1); 連接樹(shù)形控件選擇項(xiàng)目信號(hào)好相應(yīng)的處理函數(shù)on_checkItem(QTreeWidgetItem*,int);connect(ui-treeWidget,SIGNAL(itemChanged(QTreeWidgetItem*,int),this,SLOT(on_checkItem(QTreeWidgetItem*,int);本模塊涉及3個(gè)函數(shù):(1)void createGroup:on_pushButton_clicked()(2)void createGroup:on_checkItem(QTreeWidgetItem *s,int i)(3)void createGroup:on_pushButton_back_clicked()函數(shù)調(diào)用關(guān)系: 點(diǎn)選按鈕下一步時(shí)調(diào)用(1)。 選擇checkitem項(xiàng)目時(shí)發(fā)出信號(hào),(2)作為槽函數(shù)調(diào)用。 點(diǎn)選按鈕上一步時(shí)調(diào)用(3)。stackedWidget控件分為兩頁(yè),(1)函數(shù)把當(dāng)前頁(yè)設(shè)置為1,(3)函數(shù)把當(dāng)前頁(yè)設(shè)置為0void createGroup:on_checkItem(QTreeWidgetItem *s,int i) /如果當(dāng)前選項(xiàng)被選中,則把當(dāng)前選中項(xiàng)的內(nèi)容添加到listwidget中 if(s-checkState(i)=Qt:Checked) ui-listWidget-addItem(s-text(i); /如果當(dāng)前項(xiàng)被去勾選,則在listwidget中刪除當(dāng)前項(xiàng) if(s-checkState(i)=Qt:Unchecked) /ui-listWidget-findItems(s-text(i),) QList list =ui-listWidg

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論