網上有很多關于pos機開發軟件,使用Qt開發筆記軟件的知識,也有很多人為大家解答關于pos機開發軟件的問題,今天pos機之家(www.tonybus.com)為大家整理了關于這方面的知識,讓我們一起來看下吧!
本文目錄一覽:
1、pos機開發軟件
pos機開發軟件
初始化流程完善之后,我們可以朝著筆記軟件的基本目標出發:錄入文本。
文本元素依據最初的計劃,我希望所有元素以“塊”的形式呈現。文本是一個塊,圖片是一個塊…… 今天,我們先從文本元素入手——畢竟這是筆記軟件最基本的需要。
文字元素取名為mnTextItem,派生自mnNoteItem。
class mnTextItem : public mnNoteItem{public: void setText(const QString &text); const QString &text() const { return m_text; } void paint(QPainter &painter) override;protected: QString m_text;};
目前的實現很簡單,只是將一個文本draw出來即可。
void mnTextItem::paint(QPainter &painter){ painter.drawText(m_contentRect, Qt::AlignLeft | Qt::AlignVCenter, m_text);}元素層次
對于一篇筆記,元素可以按多種方式組織。前面我們希望元素有“成組”功能,為此創建了mnGroupItem。更進一步,我們把組織元素的元素可以看成一篇文章,一篇筆記,當然也可以是一個頁面,我這里選擇后者,即mnPageItem。由于我們已經有了mnGroupItem,mnPageItem從它繼承而來即可。
元素呈現元素包含在一個頁面(mnPageItem)中,這表示一開始就要有一個有效的頁面。另一方面,元素僅僅是一個數據行為的集合,它并沒有GUI載體,為了讓用戶看到它,我們需要將它呈現在一個窗口上,這個窗口就是筆記畫布 —— mnNoteCanvas。
對于畫布,目前給予兩個特性:
窗口事件采用轉發策略交給當前活動元素處理一個畫布僅關聯一個頁面對于元素的編輯,可以這樣設想:畫布要處理各種類型的元素,所有的編輯操作交給它,負擔太大了!最終畫布類中會充斥著大量的代碼,這可能并不合適。為此,對于文本元素,我們把它的編輯功能分離到一個叫mnTextEditor的類中;可以類推,如果有圖像元素,可以將它的編輯功能分派到mnImageEditor中。
通過上面的分析,我們大致可以構造一下畫布組成:
mnNoteCanvas::mnNoteCanvas(QWidget *parent) : QWidget(parent){ m_textEditor = new mnTextEditor(this); m_currentPageItem = new mnPageItem();}即點即輸入
我希望的筆記軟件它是排版自由的:塊可以在頁面的任何位置。為此,文本塊想支持即點即輸入功能,這樣,可以在一開始,就把元素放在想要的位置,很顯然這需要處理鼠標消息。
void mnTextEditor::mousePressEvent(QMouseEvent *event){ if (event->button() == Qt::LeftButton) { m_mousePressPos = event->pos(); mnPageItem *pageItem = m_canvas->currentPageItem(); mnTextItem *textItem = activeTextItem = new mnTextItem(); pageItem->add(textItem); textItem->setPos(m_mousePressPos); setBlinkCursorEnable(true); }}void mnTextEditor::draw(QPainter &painter){ mnPageItem *pageItem = m_canvas->currentPageItem(); pageItem->paint(painter); drawCaret(painter);}
從代碼中可以看到,當點擊鼠標時,我們取得當前畫布上的頁面對象mnPageItem,再為頁面創建一個文本元素,并把它裝進頁面中,最后啟用光標閃爍,等待用戶輸入。
流程總結程序啟動后創建主界面主界面中創建了一個mnNoteCanasmnNoteCanvas中創建一個mnPageItem和mnTextEditormnNoteCanvas是窗口,接收并分發消息。mnNoteCanvas中點擊鼠標左鍵,轉發給mnTextEditor。mnTextEditor在點擊消息中,創建一個mnTextItem。mnNoteCanvas的繪制消息轉發給mnTextEditor。mnTextEditor繪制當前頁面與插入符。關于第8點,這并不正確,頁面繪制應由canvas引發,目前這么做僅用于快速驗證可行性。
以上就是關于pos機開發軟件,使用Qt開發筆記軟件的知識,后面我們會繼續為大家整理關于pos機開發軟件的知識,希望能夠幫助到大家!
