Qt输入法设计报告

合集下载

qt自定义键盘插件制作及使用

qt自定义键盘插件制作及使用
创建自定义的键盘插件 根据 QWS_KEYBOARD 的值,创建自定义的键盘插件。
编写键盘插件
编写键盘插件需要创建 2 个类: 一个是基于 QKbdDriverPlugin 派生的键盘插件类,这个类主要是实现 create 和 keys 两个虚 函数,create 用来创建插件,keys 用来返回插件的键值。 一个是基于 QObject 和 QWSKeyboardHandler 派生的键盘处理类,这个类主要是完成对底层 键盘设备的打开、关闭、读取等操作,并可以将读取到的键值转换成 QT 支持的键值。 这两个类与外部的关系图:
#include <stdio.h> #include <fcntl.h> #include <stdlib.h> #include <unistd.h> #include <linux/input.h> #include <QDebug> #include "gpiokbdhandler.h"
CGpioKbdHandler::CGpioKbdHandler(const QString &dev) {
return; }
说明: gpiokbdhandler.cpp 实现了 CGpioKbdHandler 键盘处理类。 readKbdData 这个函数是把键盘设备的键值转换成 QT 内部的键值。
编写 QT 键盘插件
作者:z.g.yang 版本:V0.1
键盘插件工作原理
设置环境变量 QWS_KEYBOARD export QWS_KEYBOARD = <driver>[:<driver specific options>] driver 参数是插件的键值,也就是插件库的名字。 driver specific options 参数是插件的设备。

linux qt 编写的代码程序 调用搜狗输入法

linux qt 编写的代码程序 调用搜狗输入法

linux qt 编写的代码程序调用搜狗输入法要在Linux下使用Qt编写的程序中调用搜狗输入法,您需要遵循以下步骤:1、确保您的系统已经安装了搜狗输入法。

在Linux上,您可以从搜狗输入法的官方网站或包管理器中下载并安装它。

2、在Qt项目中包含搜狗输入法的库。

您可以在项目的.pro文件中添加以下行来包含搜狗输入法的库:qmake复制代码LIBS += -lfcitx3、在Qt应用程序中创建一个输入法实例。

您可以使用以下代码创建一个输入法实例:cpp复制代码#include<fcitx/instance.h>// 创建输入法实例fcitx::Instance instance;4、配置输入法实例。

您可以使用以下代码配置输入法实例:cpp复制代码// 设置输入法类型为搜狗输入法instance.setInputMethod("sogou");5、启动输入法实例。

您可以使用以下代码启动输入法实例:cpp复制代码// 启动输入法实例instance.start();6、在Qt应用程序中使用输入法实例。

您可以使用以下代码使用输入法实例:cpp复制代码// 获取当前输入框的焦点QWidget* widget = QApplication::focusWidget();if (widget) {// 将输入法绑定到当前输入框上fcitx::InputMethod* im = instance.getInputMethod("sogou");if (im) {im->attach(widget);}}7、在Qt应用程序中处理输入事件。

您可以使用以下代码处理输入事件:cpp复制代码// 处理输入事件void MyWidget::inputMethodQuery(Qt::InputMethodQuery query) {QVariant result;if (query == Qt::ImEnabled) {result = true; // 启用输入法输入框} else if (query == Qt::ImCursorRectangle) {result = QRect(); // 获取光标位置和大小} else if (query == Qt::ImFont) {result = QFont(); // 获取字体信息} else if (query == Qt::ImLocale) {result = QString(); // 获取语言环境信息} else if (query == Qt::ImPreferredWidth) {result = 0; // 获取首选宽度信息} else if (query == Qt::ImTextBeforeCursor) {result = QString(); // 获取文本内容,光标之前部分的内容} else if (query == Qt::ImTextAfterCursor) {result = QString(); // 获取文本内容,光标之后部分的内容} else if (query == Qt::ImMicroFocus) { // 获取焦点大小和位置信息result = QRect(); // 获取焦点区域大小和位置信息} else { // 处理其他输入事件查询请求,可以根据需要进行自定义处理。

qt项目报告总结

qt项目报告总结

Qt项目报告总结一、项目概述本项目旨在开发一款基于Qt框架的桌面应用程序,用于实现用户与计算机之间的交互操作。

通过Qt的各种组件和类库,我们成功地构建了一个功能丰富、界面美观的应用程序,满足了用户的需求。

二、开发环境与工具我们使用Qt Creator作为集成开发环境,利用C++语言进行开发。

在开发过程中,我们使用了Qt的各种核心组件,如QWidget、QPushButton、QLabel等,以构建用户界面。

同时,我们还使用了Qt 的信号与槽机制,实现了事件处理和数据传递。

三、项目实施过程1.需求分析:首先,我们对项目需求进行了深入的分析,明确了项目的目标和功能需求。

我们确定了应用程序需要具备的基本功能,如窗口管理、用户输入处理、数据存储等。

2.设计阶段:根据需求分析的结果,我们进行了详细的设计工作。

我们设计了应用程序的界面布局、功能模块以及各个模块之间的通信方式。

同时,我们还制定了开发计划和时间表。

3.编码阶段:在编码阶段,我们按照设计要求,逐步实现了各个功能模块。

我们利用Qt的各种组件和类库,编写了相应的代码。

在编写过程中,我们注重代码的规范性和可读性,以确保代码质量。

4.测试阶段:在测试阶段,我们对应用程序进行了全面的测试。

我们进行了单元测试、集成测试和系统测试,以确保应用程序的稳定性和功能性。

同时,我们还根据测试结果对代码进行了优化和调整。

5.部署与维护:最后,我们将应用程序部署到了目标平台上,并对用户进行了培训和技术支持。

在应用程序运行过程中,我们持续关注用户反馈,及时修复了潜在的问题和缺陷。

四、项目成果与收获通过本次Qt项目的开发,我们取得了以下成果和收获:1.成功构建了一个功能丰富、界面美观的桌面应用程序,满足了用户的需求。

2.熟练掌握了Qt框架的核心组件和类库,提高了我们的编程技能和经验。

嵌入式QT实验报告

嵌入式QT实验报告

嵌入式QT实验报告一、实验目的本次实验的目的是设计并实现一个简单的计算器应用程序,基于嵌入式QT进行开发。

通过这个实验,可以熟悉QT的控件使用、界面设计和信号与槽的连接等知识点。

二、实验原理计算器应用程序的主要功能是实现基本的数学运算,包括加、减、乘、除。

用户通过界面上的按钮输入数字和运算符,程序根据用户的输入进行相应的计算,并将结果显示在界面上。

三、系统设计1.界面设计计算器的界面主要分为两个部分,一个是数字输入框,用于用户输入数字;另一个是运算符按钮区域,用于用户选择运算符。

2.数字和运算符输入用户通过按钮选择数字和运算符,并将其显示在数字输入框中,需要使用QT的信号与槽机制来连接按钮和数字输入框。

3.计算功能根据用户选择的运算符,进行相应的数学运算,并将结果显示在数字输入框中。

需要使用switch语句来判断用户选择的运算符,并进行相应的计算。

四、实验步骤1.创建QT应用程序项目在QT Creator中创建一个新的QT Widget应用程序项目,命名为"Calculator",选择嵌入式QT版本。

2.设计界面使用QT Designer设计计算器的界面,添加一个数字输入框和若干个按钮,按钮包括数字按钮和运算符按钮。

需要注意布局和按钮的大小等细节。

3.连接信号与槽4.实现计算功能在mainwindow.cpp文件中实现计算器功能的代码。

首先声明一个私有变量operand用于保存上一次的操作数;然后根据用户选择的按钮,进行相应的计算。

五、实验结果(插入计算器界面截图)六、实验总结通过本次实验,我成功地设计并实现了一个简单的计算器应用程序。

在实验过程中,我学会了使用QT Designer设计界面,了解了QT的信号与槽机制,能够连接按钮和输入框等控件;同时,也巩固了基本的C++编程知识,熟悉了switch语句的使用。

在实验过程中,我遇到了一些问题,比如界面的布局和按钮的大小等细节问题,通过查阅文档和调试,最终解决了这些问题。

QT调研报告

QT调研报告

QT调研报告目录Qt简介 (3)发行版本 (3)平台支持 (3)QT的开发工具 (4)Qt库 (6)Qt模块 (6)QT各平台内存要求 (3)QT开发体验 (6)优势 (7)劣势 (8)QT能提高什么? (8)QT的应用领域 (8)总结 (9)QT术语 (9)参考资料 (9)Qt简介Qt是一个1991年由奇趣科技开发的跨平台C++图形用户界面应用程序开发框架。

它既可以开发GUI程式,也可用于开发非GUI程式,比如控制台工具和服务器。

能提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。

Qt是面向对象语言,易于扩展,并且允许组件编程。

使用 Qt,只需一次性开发应用程序和用户界面,无须重新编写源代码,便可跨不同桌面和嵌入式操作系统部署这些应用程序。

2008年,奇趣科技被诺基亚公司收购,QT也因此成为诺基亚旗下的编程语言工具。

发行版本Qt商业版:提供给商业软件开发。

它们提供传统商业软件发行版并且提供在协议有效期内的免费升级和技术支持服务。

Qt专业版和企业版是Qt的商业版本。

Qt开源版:仅仅为了开发自由和开放源码软件,提供了和商业版本同样的功能。

GNU通用公共许可证下,它是免费的。

QT已经升级到5.0了。

平台支持Qt支持下述平台:MS/Windows - 95、98、NT 4.0、ME、2000、XP 、 Vista和Win7Unix/X11 - Linux、Sun Solaris、HP-UX、CompaqTru64 UNIX、IBM AIX、SGI IRIX、FreeBSD、BSD/OS和其它很多X11平台Macintosh - Mac OS XEmbedded - 有帧缓冲(framebuffer)支持的嵌入式Linux平台,Windows CEAndroid平台 - QT框架包在android的移植才刚起步,应用不多,还不支持中文。

QT各平台内存要求Qt for Embedded Linux Requirements见参考资料【QT内存配置】∙Qt for Mac OS X Requirements官网没有说明∙Qt for Windows CE Requirements官网没有说明∙Qt for Windows Requirements官网没有说明QT的开发工具Qt Creator •用于Qt开发的轻量级跨平台集成开发环境。

QT软键盘输入

QT软键盘输入

QT软键盘输入1、从QInputContext派生自己的InputContext类,例如:class MyInputPanelContext : public QInputContext{Q_OBJECTpublic:MyInputPanelContext();~MyInputPanelContext();/* 事件过滤器 */bool filterEvent(const QEvent* event);QString identifierName();QString language();bool isComposing() const;void reset();private slots:/* 槽用于接收从输入面板输入的字符 */void sendCharacter(QChar character);private:void updatePosition();private:/* 关联的输入面板 */MyInputPanel *inputPanel;};MyInputPanelContext::MyInputPanelContext(){/* 创建和输入法关联的面板 */inputPanel = new MyInputPanel;/* 并将characterGenerated和sendCharacter关联,当用户按键后,则继续由sendCharacter向目标Widget */connect(inputPanel, SIGNAL(characterGenerated(QChar)), SLOT(sendCharacter(QChar)));}bool MyInputPanelContext::filterEvent(const QEvent* event) {if (event->type() == QEvent::RequestSoftwareInputPanel){/* 当某个Widget请求软键盘输入时,显示软键盘 */updatePosition();inputPanel->show();return true;}else if (event->type() == QEvent::CloseSoftwareInputPanel) {/* 当某个Widget请求关闭软键盘输入时,关闭软键盘 */inputPanel->hide();return true;}return false;}void MyInputPanelContext::sendCharacter(QChar character) {QPointer<QWidget> w = focusWidget();if (!w)return;/* 当收到按键面板的按键输入后,分别向当前焦点Widget发送KeyPress和KeyRelease事件 */QKeyEvent keyPress(QEvent::KeyPress, character.unicode(), Qt::NoModifier, QString(character));QApplication::sendEvent(w, &keyPress);if (!w)return;QKeyEvent keyRelease(QEvent::KeyPress, character.unicode(), Qt::NoModifier, QString());QApplication::sendEvent(w, &keyRelease);}/* 根据当前焦点Widget的位置,调整输入面板的位置 */void MyInputPanelContext::updatePosition(){QWidget *widget = focusWidget();if (!widget)return;QRect widgetRect = widget->rect();QPoint panelPos = QPoint(widgetRect.left(), widgetRect.bottom() + 2);panelPos = widget->mapT oGlobal(panelPos);inputPanel->move(panelPos);2、输入面板图示:/* 每个按钮具有一个buttonValue动态属性,表明和该按钮相关的字符,当按钮点击时,将此字符作为信号参数发出 *//* 前面的InputContext关联了此信号,并进一步发送给了目标Widget */void MyInputPanel::buttonClicked(QWidget *w){QChar chr = qvariant_cast<QChar>(w->property("buttonValue"));emit characterGenerated(chr);}3、使用InputContext在应用程序main处,通过setInputContext将InputContext和Application关联,入:int main(int argc, char **argv){QApplication app(argc, argv);MyInputPanelContext *ic = new MyInputPanelContext;/* InputContext和Application关联 */app.setInputContext(ic);/* 主窗口 */QWidget widget;Ui::MainForm form;form.setupUi(&widget);widget.show();return app.exec();}转载:/calm_agan/article/details/6275697。

qt实验报告

qt实验报告

嵌入式系统界面设计实验实验题目:基于Qt的图片表格转换学院: **学院专业:电子信息工程班级:学号:姓名:小组成员:编写日期: 2019.10目录1. 实验设计背景 (1)2. 实验设计目的 (1)3. 实验设计环境 (1)4. 实验系统需求分析 (1)4.1 系统调查 (1)4.2 用户需求 (2)4.3 可行性分析 (2)4.4 系统业务流程图 (3)5. 实验具体操作步骤及方法 (3)5.1 程序运行开始主界面 (3)5.2 用户修改界面 (4)5.3 最终生成表格 (4)6. 实验结果分析 (5)7. 实验效果图 (6)8. 实验设计具体任务分工 (6)9. 实验设计心得体会 (6)1.实验设计背景当今办公室中有不少的表格是基于图片的这给后期人员的校对处理带来了不少的麻烦,特别是列数较多行数较多的表格。

在将表通过人工的方法转换为Excel 表格时容易出现差错,表格行列错位、数据抄错等等问题。

长时间的工作还容易损害校对人员的健康。

2.实验设计目的1.将表格分解成小片,以便于人工填写2.尽可能的通过软件将图片数字转换为文字3.Excel表格导出3.实验设计环境Visual Studio CodePython 3.7Python包:Pytesseract、openpyxl、numpy、cv2Qt CreaterTesseract-OCR4.实验系统需求分析4.1系统调查在许多小公司的办公中,由于大多业务系统都是使用的通用的模板,没有对具体情形进行优化,以及以前未使用办公系统的历史遗留问题,在实际的办公中经常会出现大量图像表格,需要人为地输入到EXCEL表格中以用于后续公司的各项统计工作4.2用户需求将PNG、JPG、BMP等格式的图片表格转化为EXCEL 的数字表格方便后续的统计工作4.3可行性分析Python中中存在大量的用于图像处理的库opencv等可以方便地对图像表格进行处理分割成小块。

QT课程设计报告【范本模板】

QT课程设计报告【范本模板】

题目:简易计算器学院:信息科学与技术专业:软件工程姓名:学号:2014.04.19一、需求分析当今社会是信息社会,科技经济高速发展的社会,为了更方便人们的工作生活和加速人们处理信息的速度,计算器应运而生。

然而,电脑已经成为当代人生活的必需品,运行在电脑上的计算器成为了人们的生活学习绝佳伴侣。

下面是用C++编写的,基于Qt图形用户界面应用程序框架的计算器,它实现了对整数,浮点数的加﹑减﹑乘﹑除﹑幂运算。

二、设计过程1.界面设计在QT设计器中布置好计算器界面,所有按键采用的pushButton控件,显示计算结果采用的是lineEdit控件.完成的界面如下图所示:图计算器界面为了使按钮显示美观,将每个button的属性设置如下:图button大小、字体属性为符合人们的使用习惯,将lineEdit空间的属性更改,使得输入的数字和符号出现在空间的右边起。

如图:图lineEdit控件属性更改2.控件重命名将界面布局设计好后,将各个空间改名,例如“0"改为but0.3.简单信号响应对于button exit退出程序,这样简单的响应,直接在设计器中通过添加信号和槽来完成,如图:图信号和槽4.辅助数据成员及函数为了区分每一次计算和保存操作数、操作符,和辅助函数(如:输出函数),在calculator。

h的类中设定数据成员以及成员函数:calculat。

cpp中辅助函数的实现:5.数字键的响应以button 0为例,在calculator。

cpp文件中添加but0的代码,如下:6.小数点的响应当一个操作数已经输入了一个小数点时,将小数点按钮置为不可用,以防用户重复输入小数点,导致输入操作数不合法,如下如:7.运算功能的响应以加法为例,向lineEdit中输入显示+号,并在数据成员中保存,以便后面进行计算:8.清屏的响应首先将lineEdit的显示清除,再置为0;将一切辅助的数据成员数据重置到新一轮计算的开始状态,如:运算符为空,操作数为0等.实现如下:9.等号的响应根据数据成员记录的运算符和操作数进行相应的计算,并将得出的结果转化为string显示在lineEdit上,并重置辅助数据成员,准备下一轮的计算开始。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Qt输入法设计报告学院:电气信息工程学院专业:物联网工程班级: 12物联网1 学号: 12****** 姓名:华** 指导教师: *** 设计时间:2014.12.01-2014.12.05摘要:在基于Linux 环境的虚拟机上,使用 Qt Creator ,编写Qt 程序,以代码形式实现软键盘的操作界面,在软件盘上制定数字键、字母键、退出键等按键,使之具备大小写英文字母、数字、基本符号以及中文汉字输入等输入法的基本功能。

编写代码实现按键各项功能后可生成能够在ARM 板上运行的代码,并移植到ARM 板上,实现开发板上触摸式输入的功能。

关键词:Qt Creator 、信号与槽一、程序模块设计(一)程序模块Qt 输入法主工程名为keyboard.pro ,主要包括.h 头文件、.c 源文件和.qrc 资源文件组成,如图1.1所示:图1.1 程序文件程序分为界面设计模块、按键功能定义模块、中文汉字输入显示模块以及非中文字符输入显示模块构成,具体联系如图1.2所示:图1.2 程序模块示意图中文汉字输出模块 非中文字符输出模块按键功能定义 界面设计模块 字符输入模块(二)程序流程图按照以上程序模块功能编写keyboard.cpp 程序,流程图如图1.3所示:图1.3 程序流程图二、各模块程序分析各模块的功能全部由编写“keyboard.cpp ”文件编译实现,具体内容如下:(一)界面设计模块Qt 输入法的设计目的是基于一个软件盘的操作界面,在ARM 板上实现触摸式的输入方式,因此,本模块的主要功能就是定义这个软键盘的大小,设置键盘上的按键个数及大小、布局。

setWindowFlags(Qt::FramelessWindowHint);this->resize(520,350); //设置软键盘大小为520*350; QPalette palette = this->palette();palette.setBrush(QPalette::Background,QBrush(Qt::red));//设置键盘底色为红色;同时,在此模块中定义键盘上用于表示汉字输入框、字符输出框、字母键、关闭键盘 开始设置软键盘及按键大小、布局 选择输入模式 点击了“cancel ”? Y 模式为CN? 调用字库,汉字候选框出现汉Y 点击所需汉字选择字符按键 N 输出框中显示所选字符/汉字N符号键、汉字候选框键、左移键、右移键、删除键、模式切换键、模式标志键、大小写切换键、关闭键、确定键、空格键等共计45个控件的类和具体位置、大小。

定义完成后界面如图2.1所示:图2.1键盘界面(二)按键功能定义模块1.基本功能键基本功能键包括左移键、右移键、汉字候选框0~7、删除键、模式切换键、模式标志键、大小写切换键、关闭键、确定键、空格键。

此模块首先要完成的任务是为各功能按键上显示相应功能的名称,程序如下:m_leftBtn ->setText("<"); //左移按键上显示<m_rightBtn ->setText(">"); //右移按键上显示>m_capsBtn ->setText("Caps");//大小写切换键上显示Capsm_deleteBtn ->setText("<--");//删除键上显示<--m_signBtn ->setText("CN");//模式标志键上初始状态显示CN(默认汉字输入) m_changeBtn ->setText("change");//模式切换键上显示changem_spaceBtn ->setText("space");//空格键上显示spacem_sureBtn ->setText("sure");//确定键上显示surem_cancelBtn ->setText("cancel");//关闭键上显示cancel汉字候选框键上面默认不显示字符。

接下来,为每个按键定义功能,以左移按键为例:void Widget::leftFun(){m_selectFlag --;if(m_selectFlag<1)m_selectFlag =1;showHanzi();}//点击左移时,8个汉字候选框每8个一组地显示候选汉字。

同理,编写程序实现每一个基本功能键的功能。

2.字符按键功能字符按键需要在中文、大写英文、小写英文、数字符号这四种模式下显示不同的字母或符号,以显示字母“q”的按键为例:void Widget::setName_EN(){ m_QBtn ->setText("Q");}//大写模式下,此按键显示Qvoid Widget::setName_en(){ m_QBtn ->setText("q");}//小写模式或中文输入模式下,此按键显示q void Widget::setName_sn(){ m_QBtn ->setText("1");}//数字模式下,此按键显示1同理设置所有字符按键上面显示的内容。

接下来为每一个字符按键定义功能,同样以显示字母q的按键为例:void Widget::qFun(){ switch(m_stateFlag){case 0:m_spellEdit->insert("q");break;//中文模式下将“q”送入拼写框 case 1:if(m_capsFlag)m_hanziEdit->insert("Q");//大写模式下将“Q”送入输出框 elsem_hanziEdit->insert("q");//小写模式下将“q”送入输出框 break;case 2:m_hanziEdit->insert("1");//数字模式下,将“1”送入输出框 default:break; }}同理编写程序为每一个字符按键实现此类功能。

3.信号与槽的应用对每个按键进行了以上功能的定义之后,要采用信号与槽连接的程序,实现在点击按键这个事件发生时使按键完成相应的功能,同样以显示字母q的按键为例:connect(m_QBtn,SIGNAL(clicked()),this,SLOT(qFun()));如此,便可实现点击按键Q时,根据不同的输入模式在输出框或汉字拼写框中显示相应的字符。

同样的,对每一个按键进行信号与槽的连接,便可使软键盘正常工作。

(三)中文汉字输出模块非中文状态下的字符输出以上已经提及,此处不再重复。

中文汉字的输出是建立在调用中文字库的前提上的,本程序使用的中文字库是“GB18030”,首先将中文字库写入“zk.txt”文件保存在工程文件的根目录中,其次在工程文件下建立一个虚拟目录“zk”,通过“zk.qrc”文件实现“keyboard.cpp”文件对字库的调用,进行读取并在软键盘上显示汉字。

扼要的程序实现如下:m_file = new QFile(":/zk.txt");m_in = new QTextStream(m_file);if(!m_file->open(QIODevice::ReadOnly | QIODevice::Text)){qDebug() << "can't open this zk.txt!!";return;}//在程序中读取zk.txt中的文字,并使指针指向字库的首个字符。

字库文件读取成功后,当程序处于中文汉字输入模式下时,根据所输入的字符读取zk.txt第一列的值,使指针指向zk.txt中与输入拼音相同的那一行,并通过左移、右移键的功能,将这一行的中文汉字8个一组地显示在汉字候选框内,通过点击即可将用户想要的中文汉字送进输出框,程序实现如下:stringLine = m_in -> readLine();stringLine = strlist[1];m_storeHanziStr = stringLine;m_storeCount = stringLine.count();//使指针指向字库中与输入拼音相同的那行的第一个汉字,同时统计出本行汉字总数if(m_storeCount>=m_selectFlag*8){m_ziBtn0 ->setText(m_storeHanziStr.at(m_selectFlag*8-8));m_ziBtn1 ->setText(m_storeHanziStr.at(m_selectFlag*8-7));m_ziBtn2 ->setText(m_storeHanziStr.at(m_selectFlag*8-6));m_ziBtn3 ->setText(m_storeHanziStr.at(m_selectFlag*8-5));m_ziBtn4 ->setText(m_storeHanziStr.at(m_selectFlag*8-4));m_ziBtn5 ->setText(m_storeHanziStr.at(m_selectFlag*8-3));m_ziBtn6 ->setText(m_storeHanziStr.at(m_selectFlag*8-2));m_ziBtn7 ->setText(m_storeHanziStr.at(m_selectFlag*8-1));}//如果当前行的汉字数>=8的整数倍从指针当前所指字起的8个字显示到汉字候选框中,然后通过左移右移,8个一组地依次显示字库中的汉字else{int extraNum = m_selectFlag*8 - m_storeCount;switch(extraNum){Case0:……;break;Case1:……;break;Case2:……;break;Case3:……;break;Case4:……;break;Case5:……;break;Case6:……;break;Case7:……;break;}//如果当前行汉字数<8,计算得比8小extraNum,只要将汉字显示到汉字候选框的前(8-extraNum)上即可。

然后通过点击汉字候选框,其信号与槽的连接关系便可将相应的中文汉字送进输出框,实现输入法的中文输入功能。

相关文档
最新文档