QT雜記(三)員工管理系統

2021-08-22 15:01:17 字數 1268 閱讀 4949

這兩天在用qt做乙個員工管理系統,裡面牽涉到不少之前沒細想過的問題,記錄下來以便以後查閱

先把需要放出來:

(一)兩個沒有關係的視窗間怎麼傳遞資訊

一開始是做客戶端的,遇到的第乙個問題是,作為普通使用者,登陸之後跳轉到使用者介面,這時候怎麼傳送資訊給伺服器端,讓伺服器端知道自己是誰?(即當前使用者名稱)而管理員可以檢視所有使用者資訊,因此不需考慮這一點。

網上大多數的視窗間通訊都是三種,父子視窗相互通訊或者兄弟視窗。但是在這個專案裡,登陸介面和使用者操作介面並沒有關係,而且登陸介面在登陸完成後要關閉,這就無法使用一般的通訊了。

最後的解決辦法是:建立乙個檔案專門存放當前使用者名稱。

用qfile新建乙個檔案,並在登陸介面視窗的建構函式中開啟並將其清空,而登陸成功時就將使用者名稱寫入該檔案。後續需要用到當前使用者名稱的視窗都可以開啟讀取。

(二)讀取當前使用者檔案為空

這個其實是上面第乙個問題衍生出來的乙個bug。在qt使用中,我們一般不怎麼主動呼叫file.close()這個函式,因為c++中類的析構函式會幫我們自動關閉。但是在這個專案的情景中,登陸介面接受到伺服器端發來的登陸成功訊號就會馬上開打使用者操作介面,然後再呼叫this->close()關閉。而讀取當前使用者名稱檔案是寫在每個視窗的建構函式中,登陸視窗中呼叫時就會馬上去讀檔案,這個時候登入視窗還沒有關閉,也沒有關閉檔案。因此讀出來的使用者名稱就是空的。登陸介面呼叫新視窗**如下:

qmessagebox::information(this, "成功", "登陸成功");

//開啟使用者本記錄當前使用者

qfile file("user.txt");

if(!file.open(qiodevice::writeonly))

qdatastream in(&file);

inthis->close();

解決的方法也很簡單,在放入使用者名稱之後,主動呼叫file.close()函式就可以了。改正後的**如下:

qmessagebox::information(this, "成功", "登陸成功");

//開啟使用者本記錄當前使用者

qfile file("user.txt");

if(!file.open(qiodevice::writeonly))

qdatastream in(&file);

inthis->close();

團隊管理18 員工激勵

相信大家對於激勵都比較了解,說的直白一點就是如何激發你的工作動力。當前社會,大家的工作壓力都比較大,感覺要學的東西太多,又感覺前途有點迷茫,35歲的職業門檻又在逐步的迫近或者已經過去,如何更好的激發員工的工作積極性同時創造更多的價值則是當前時代非常重要的主題。對於激勵的認識,整個激勵理論分為三個階段...

《資料結構與演算法》課程設計 24 員工管理系統

問題描述 每個員工的資訊包括 編號 姓名 性別 出生年月 學歷 職務 住址等。系統能夠完成員工資訊的查詢 更新 插入 刪除 排序等功能。實現要求 1 排序 按不同關鍵字,對所有員工的資訊進行排序。2 查詢 按特定條件查詢員工。3 更新 按編號對某個員工的某項資訊進行修改。4 插入 加入新員工的資訊。...

系統設計的三員管理

系統管理員 主要負責系統的日常執行維護工作。包括網路裝置 安全保密產品 伺服器和使用者終端 作業系統資料庫 涉密業務系統的安裝 配置 公升級 維護 執行管理 網路和系統的使用者增加或刪除 網路和系統的資料備份 執行日誌審查和運 況監控 應急條件下的安全恢復。安全保密管理員 主要負責系統的日常安全保密...