HZYZ源码分析笔记

流程

1、写好的c/c++代码。
2、将写好的c/c++代码整个共享入LINUX系统下。
(Oracle VM VirtualBox共享固定目录。
mount(挂载命令)
mount -t vboxsf share(挂载文件夹) /mnt/share/
)
3、在LINUX系统下通过gcc编译为arm的运行包。
(进入makefile文件目录。
make clean(清除编译文件)
make Makefile(编译)
)
4、将运行包烧录入EPOS机中运行。

MAIN函数

Main()
{
    void ExtractDir(char *p_caFilePath  //文件路径
                        ,char *p_caDir  //取得的目录
                    )
    //取得运行目录,不包括最后一个"/"

void *memset(void *s, int ch, size_t n);
函数解释:将s中前n个字节 (typedef unsigned int size_t )用 ch 替换并返回 s 。
memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法[1] 。

在main函数中设置路径及QT字体以后
QWSServer::setCursorVisible(false);  //让EditText不出现光标
使用
MainWnd mainwnd;
调用MainWnd的构造函数。


class MainWnd : public QWidget
{
    Q_OBJECT

public:
    MainWnd(QWidget *parent = 0);
    ~MainWnd();

    void createTextWnd();        //创建文本窗口
    void createMenuWnd();        //创建菜单窗口
    void showWnd();
    void addMenuItem(const char *p_caTitle, int p_iWidth=-1, int p_iHeight=-1);          //创建菜单
    void addText(int p_iUseRows, Qt::Alignment alignment, const char *p_caFormat, ...);

    void setTitle(const char *p_caTitle);
    void setText(int p_iTextIdx, const char *p_caFormat, ...);
    void setHelp(const char *p_caFormat, ...);
    void setT9Help(const char *p_caBuffer);
    void clearWnd(int p_iFlag);    //
    int  getPages();
    int  getCurPageIdx();
    void ctrlWndTimeout(int p_iSecond);
    void PageUp();
    void PageDown();
    void Display();
    void HideLabel();
    int  PrepareText(const char *pcaStr,int ibeginRow=0,int ibeginCol=0);
    void setProgress(int p_iProgress);
    int getProgress();
    CmdBase* getBase();
    TWNDTYPE getWndType();
    void setemit();
    char caBuff[32];
    QList<CmdBase *>c_lstDynMenu;          //动态交易菜单列表
    QProgressBar *c_pProgressBar;         //进度条处理
    QQueue<QString> c_qusMessage;
public slots:
    void onMenuClick(int p_iIdx);
    void onNewCmd(CmdBase *p_obj);
    void startApp();
    void OnShowWndTime(int p_iSecond);
    void OnHideWndTime(int p_iSecond);
    void onClickReturn();
    void onShowSn();
    void onUpdateMenu();
    void onTradeTest();//联机交易自检
    void onFactorReset();//恢复出厂设置
    void onClearMenu();//清除菜单
    void onUpdateKey();//跟新密钥
    void onTestNet();//网络检测
    void onDeviceManage();//终端管理
    void onShowKey(char cKey);//显示快捷操作时的键值
private:
    TWNDTYPE      c_stWnd;           //当前窗口模式, 1:普通文本模式, 2:菜单模式
    int           c_iPages;          //总的页数
    int           c_iCurPageIdx;     //当前页号
    bool          c_blLines;         //是否生成了当前界面的文本行对象
    QLabel       *c_labBG;           //背景
    QLabel       *c_labTitle;        //标题栏
    QLabel       *c_labHelp;         //帮助提示文本
    QLabel       *c_labWndTimeout;   //界面超时
    QLabel       *c_labLines[TEXT_LINES];   //文本行显示对象
    CmdBase      *c_cmdBase;         //操作码指令处理类指针
    WndTimeout   *c_WndTimeout;      //界面超时线程
    QList<TText *>c_lstText;      //文本对象,存放具体的文本
    QList<char *>c_lstLines;      //文本行对象
    QList<Qt::Alignment>c_lstAlignment;   //文本行对齐方式

    QList<QCustButton *>c_lstMenuItems;   //菜单窗口的按钮控件集
    QSignalMapper *c_menuMapper;          //菜单事件Mapper

    char c_caTradeCode[10];
    int c_pciSize[4];
    int c_iPage;
    int c_iCurPage;
    int c_iTotal;
    bool c_bFirst;
    int c_mouseX;
    int c_idot;
    int c_iLeftBorder;
    int c_iColWidth;
    int c_iTopBorder;
    int c_iRowWidth;

    bool eventFilter(QObject *obj, QEvent *event);   //事件过滤器
    void getLines();             //生成文本行对象
    /*
    char c_pcaSrc_app_name[100];
    char c_pcaDst_app_name[100];
    char c_pcaTradeCode[10];
    char c_pcaTradeCash[20];
    char c_pcaTrade[10];
    char c_caCmd[128];
    char c_chValue;
    */

signals:
    void menuSelect(int p_iIdx);        //菜单选择信号
    void newCmd(CmdBase *p_obj);        //新操作码命令信号
    void KeyPress(int p_iKey);         //按键事件
    //void slotKey(int num);            //数字按键事件
    void typesingle();

};

#endif  //__MAINWND_H__

}
“`

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值