网上有很多关于pos机开发软件,使用Qt开发笔记软件的知识,也有很多人为大家解答关于pos机开发软件的问题,今天pos机之家(www.poszjia.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机开发软件的知识,希望能够帮助到大家!
