ui圖形介面
ui:圖形介面的乙個類
標頭檔案中:
private:
ui::chatpage *ui; //類的私有屬性,表明物件無法進行修改。
.cpp檔案中
ui(new ui::login)
首個圖形介面都main中建立。
顯示某一類對應的圖形介面
chatpage *chatpage; //對應類chatpage的物件
chatpage = new chatpage();//申請記憶體
chatpage->setattribute(qt::wa_deleteonclose); //關閉介面時自動釋放記憶體
chatpage->show();//呼叫方法show顯示介面
chatpage->close();//關閉介面
#include 「qpixmap」 //標頭檔案
qstring *headpath = new qstring("//檔案路徑"); //qt中字元物件儲存路徑
qpixmap *headpix = new qpixmap(*headpath); //用物件來儲存該字元物件
*headpix = headpix->scaled(ui->headlabel->size()); //呼叫類中scaled行為調整大小
ui->headlabel->setpixmap(*headpix); //label控制項顯示
"設定button控制項顯示"
#include 「qpixmap」 //標頭檔案
qstring *addpath = new qstring("//檔案路徑");
qpixmap *addpix = new qpixmap(*addpath);
*addpix = addpix->scaled(ui->addbutton->size());
ui->addbutton->seticon(qicon(*addpix));//設定按鈕的圖示,跟label方式不同
"設定button控制項顯示文字"
qstring msg;
ui->addbutton->settext(msg);//控制項顯示文字
設定按鈕訊號與槽:
在ui設計介面中將對應按鈕控制項設定槽函式,並在槽函式中指定相應的處理行為
標頭檔案中
private slots: void on_addbutton_clicked();//指定槽函式
.cpp檔案中定義槽函式
void chatpage::on_addbutton_clicked()
文字輸入框新增提示文字:setplaceholdertext(提示字串);
explicit關鍵字:
一般只將有單個引數的建構函式宣告,不希望編譯器對引數進行自動型別轉換(又稱編譯器隱式轉換)
switch()語句內不能宣告變數
qt中字元物件的轉換:
qstring str = 「***xx」 或者控制項中的文字 qstring str = ui->控制項->text();
//呼叫字元物件中tostdstring().c_str()方法轉換為c中的char * 字串指標。
方式1:」const char *c = str.tostdstring().c_str();//不靠譜
方式2:qbytearray ba = str.tolatin1(); const char *c= ba.data();
md5加密udp:客戶端socket程式設計
在類的私有屬性中宣告: qudpsocket *socket;//物件無法修改
建構函式中申請記憶體:socket = new qudpsocket();
//埠號繫結:socket->bind(11111);以下客戶端必須顯示bind埠號才能連線伺服器
//連線伺服器:connect(socket, signal( readyread(), this, slot( readdatahandler() ));
//接收伺服器資料
slot( readdatahandler() ) 為繫結當前socket套接字介面,若收到資料則會呼叫對應槽函式readdatahandler()進行處理。
socket->readdatagram(接收buf, 大小);
//向伺服器傳送資料:
qhostaddress *address = new qhostaddress(qstring(denglu_server_ip));//將字串 ip 轉為qt中ip對應的qhostaddress物件
//其中網路位元組序在qt中內部進行轉換了,可以直接寫資料報到對應伺服器端口。
socket->writedatagram((const char *)&denglu, sizeof(denglu), *address, denglu_server_prot);
udp:伺服器socket程式設計
在虛擬機器下搭建各服務的伺服器
列印字元物件(除錯用)
qdebug() << 字元物件;
在qtreewidget控制項新增條目並顯示圖示和文字資訊
qtreewidgetitem *item = new qtreewidgetitem(ui->qtreewidget控制項);
item->seticon(0, qicon(「路徑」));
item->settext(0, 文字資訊);
a與b跨ui圖形介面相互操作
在a中宣告乙個指標,該屬性用於儲存b中對應的空間
在b中將b中ui對應的空間指標賦給a的指標,在a的檔案中遍可以對b控制項進行操作
qt中設定utf-8編碼格式
qtextcodec *codec = qtextcodec::codecforname(「utf-8」);
qtextcodec::setcodecforlocale(codec);
物件擴充套件方法
在對應public中宣告 function();
在定義function中引用類已具備的函式功能基礎上再進行附加操作。
網路程式設計中,會出現qt畫面按鈕無反應,屬於網路延遲等問題。
qstring().tolatin1()不支援中文,iso-8859-1編碼是單位元組編碼,向下相容ascii,其編碼範圍是0x00-0xff,可使用tolocal8bit(),unicode編碼
控制項邊框設定linewidth、控制項按鈕顯示設定qpushbutton、時間顯示lcd number控制項以及設定顯示位數digitcount(能夠顯示整數、浮點、字串)。
定時器與時間類
標頭檔案#include
#include
新增屬性及行為
qtimer *timer;
void timerhandler();
timer = new qtimer();
connect(timer, signal(timeout()), this, slot(timerhandler()));
timer->start(1000);//毫秒級
void chatpage::timerhandler()
單擊/雙擊識別
設定槽函式,通過控制項所擁有的方法判斷
ischecked()//單擊
isdoubleclicked()//雙擊
非系統指定或當前目錄時,對庫檔案和標頭檔案的宣告,在pro工程中
#新增標頭檔案的位置
#includepath += /usr/include/
#新增庫的位置
#libs += -l/usr/lib -lsqlite3
記住密碼
通過控制項判斷是否記住密碼,資料庫對賬戶密碼進行記錄,若第一次則插入否則更新。記住密碼資料表儲存於客戶端中,由客戶端呼叫;實時監測控制項文字資訊:定義訊號槽函式textchanged(); 賬戶框資訊發生變動則發生訊號,查詢資料庫,若該使用者在記錄密碼表中有對應資訊,則填充到密碼框對應控制項中,若不匹配則清空密碼框。
聊天工具的架構分析
隨著統一通訊的發展,聊天工具有了更好的發展,其中要算手機和網上的即時聊天工具的發展了。手機主要是3g的開發,有了統一通訊技術的支援,我們才可以實現第三代的通訊,但是這裡要說的另乙個方面,關於聊天工具的。下面就 聊天工具開發聊聊現有聊天工具的架構,需要先說明的是tcp和udp這兩個協議,因為只有先確定...
FireChat 無需網路支援的聊天工具
2014 3 21,07 18 何宗丞 舊金山創業團隊 open garden 開發的 firechat 獨闢蹊徑,同樣是可以傳送 和文字的通訊應用,firechat 卻無需網路的支援。這款僅支援 ios 平台的 firechat 設計極其簡單,甚至沒有註冊的過程,使用者只需自定義乙個 id 作為識...
基於python的簡易區域網聊天工具
threading 多執行緒模組,實現同時接收,同時傳送 本地機器兩個命令視窗不同埠號執行,實際使用可在區域網內電腦執行 接受資訊函式 def rec upd while true 接收訊息,最多為1024位元組 data upd.recvfrom 1024 data為乙個元組,info為資訊內容,...