Qt 總結 印表機介面

2021-06-21 23:55:43 字數 1978 閱讀 9486

寫這個介面花了很長時間,遇到很多問題,可能是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介面依靠其支援熱插拔和輸出速度快的特性,在條碼印表機介面型別中迅速崛起,因此目前市場主流的條碼印表機有些型號則兼具...