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

下載本文檔

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

文檔簡介

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論