寫這個介面花了很長時間,遇到很多問題,可能是qt上一些常用的用法,但對於新手,卻不得不是乙個坎。吃一塹長一智,以後一定會越寫越順的。
1.多介面
首先新增檔案new----qt---qt designer from class---widget
在主視窗檔案包含副視窗的標頭檔案:include"widget.h"
然後建立物件:widget aui;
呼叫副視窗就用aui.exec();
或者aui.show();
這兩者的區別是,用exec會阻塞,也就是會留在exec不會往下執行,而用show不會!!
2.鎖定當前視窗
這個簡單,在建構函式裡面呼叫
setmodal(ok);
就ok了。。
3.將lineedit裡的字串轉化成數字
bool ok = 1;
tempu = ui->lineedit_settmp->text();
temp = tempu.toint(&ok,10);
4.視窗間資料傳遞
qdebug()<
直接訪問類成員函式
5.事件過濾器!!!這個重要,困擾了很久
我想獲得游標在哪個lineedit裡,以便我輸入顯示,但是用什麼訊號都不好,最後用事件過濾器解決了。
事件過濾器可以用來監視物件
用c++ gui qt4上面的話:qobject例項在看到他自己的事件之前,可以通過設定另乙個qobject例項來先監視這些事件。
首先在建構函式裡面新增 對目標物件呼叫installeventfiler()來監視物件:
ui->lineedit_czry->installeventfilter(this);
ui->lineedit_mjrq->installeventfilter(this);
ui->lineedit_sxrq->installeventfilter(this);
ui->lineedit_mjqh->installeventfilter(this);
ui->lineedit_dyxh->installeventfilter(this);
ui->lineedit_rqjz->installeventfilter(this);
然後宣告處理函式:
bool eventfilter(qobject *watched,qevent *event); //
然後實現這個函式:
bool setoption::eventfilter(qobject *watched,qevent *event)
else if (event->type()==qevent::focusout) // 這裡指 lineedit1 控制項的失去焦點事件
}
......
return qwidget::eventfilter(watched,event); // 最後將事件交給上層對話方塊?????????
}
面向介面 「印表機」
問題說明 開發印表機 墨盒 彩色 紙張型別 a4 墨盒和紙張都不是印表機 印表機廠商要相容市場上的墨盒 紙張 用面向介面程式設計的方式開發 制定墨盒 紙張的約定或標準 印表機廠商使用墨盒 紙張的標準卡法印表機 其他廠商按照墨盒 紙張的標準生產墨盒 紙張 第一步首先我們去建兩個介面 分別為墨盒介面 紙...
檢測印表機並於指定印表機上列印
1.自動檢測印表機 tprinter p printer tstringlist list new tstringlist list assign p printers 重點是這句 if list count 0 delete list else 2.在指定的印表機上列印報表 tprinter pr...
條碼印表機的介面型別
介面型別指的是指條碼印表機與計算機之間採用的介面型別,通過這項指標也可以間接反映出條碼印表機輸出速度的快慢。目前市場上條碼印表機產品的主要介面型別包括常見的並行介面和 usb介面。usb介面依靠其支援熱插拔和輸出速度快的特性,在條碼印表機介面型別中迅速崛起,因此目前市場主流的條碼印表機有些型號則兼具...