当前位置: 首页 > news >正文

网站建设属于税收建网站挣钱

网站建设属于税收,建网站挣钱,建设部工程造价管理网站,开发区网站建设目录 1、前言 2、界面设计 3、英文、数字的输入 4、符号的输入 5、中文的输入 6、中文拼音库的选择 7、其他 8、结语 1、前言 使用QT C在带显示器的Linux系统 开发板上#xff08;树莓派等#xff09;编写操作UI界面时#xff0c;很多时候都需要一个软键盘来输入文字…目录 1、前言 2、界面设计 3、英文、数字的输入 4、符号的输入 5、中文的输入 6、中文拼音库的选择 7、其他 8、结语 1、前言 使用QT C在带显示器的Linux系统 开发板上树莓派等编写操作UI界面时很多时候都需要一个软键盘来输入文字、符号等在Windows系统只有少数时候需要用软键盘。这个时候使用QT自带的软键盘就可能会出现很多显示问题大小不适、显示文本乱码等等。 //QT自带的软键盘激活QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);//设置为默认键盘qputenv(QT_IM_MODULE, QByteArray(qtvirtualkeyboard)); 当然这个时候还可以查看你使用的liunx系统是否自带软键盘你可以启动这个自带的但是很多情况下还是会出现上面的问题显示乱码、大小不适。 最后我们最佳方案就是自己动手编写一个软键盘或者在网络上找一个已经实现的例程。但是我在网络上没有找到好用的软键盘例程都有很大得缺陷所以还是决定自己编写一个软键盘这样也对于所对应得项目或者开发板具有更好兼容性。 2、界面设计 这里建议先在能使用Qt Creator的系统上做好键盘得UI界面因为在这个官方得编辑编译器中有对应得UI设计工具界面这个界面能够快速的做出你需要的界面的模样并自动生成.ui文件。界面样式就按照手机输入法做一个大概的样子就行了例如我的 这里的选词我使用的label然后结合link标签使用点击时就可以取出对应的文字了你也可以使用pushbutton来替代只要最后能达到目的就行。 3、英文、数字的输入 英文、数字以及符号的输入很简单使用pushbutton在对应的按钮上添加对应的文本点击该按钮时获取该文本即可进行对应的输入操作这里按钮很多建议使用Qt中的按钮组类QButtonGroup来管理按钮我使用了两个按钮组来管理对应的输入操作 QButtonGroup *bigKey26; //26键QButtonGroup *numberKey; //数字键bigKey26 new QButtonGroup(this);//26键按钮组初始化connect(bigKey26,SIGNAL(buttonClicked(int)),this,SLOT(bigKey26Slot(int)));for (int var 1; var 26; var) {QPushButton *pushButton this-findChildQPushButton *(bigKeyboardBtn_ QString::number(var));if(pushButton ! nullptr){bigKey26-addButton(pushButton,var);}}numberKey new QButtonGroup(this);//数字键按钮组初始化connect(numberKey,SIGNAL(buttonClicked(int)),this,SLOT(numberKeySlot(int)));for (int var 0; var 9; var) {QPushButton *pushButton this-findChildQPushButton *(numberKekboard_ QString::number(var));if(pushButton ! nullptr){numberKey-addButton(pushButton,var);}}//26键功能函数这里有英文也有中文 void KeyBoardWidget::bigKey26Slot(int id) {QString curBtnText this-findChildQPushButton *(bigKeyboardBtn_ QString::number(id))-text();if(bigKeyLanguagesFlag 0){/** ********** 英 ***********/if(bigKey26UpAndDownFlag 0){//小curBtnText curBtnText.toLower();}else if(bigKey26UpAndDownFlag 1){//大curBtnText curBtnText.toUpper();} // this-addTextContentOfLabel(ui-label, ret1-label, curBtnText);this-curFocusWidgetInsertText(curBtnText); //在当前焦点控件光标处添加文本}else if(bigKeyLanguagesFlag 1){/** ********** 中 ***********/curBtnText curBtnText.toLower();ui-label_9-setText(ui-label_9-text() curBtnText);// dictRetList QStringList{结果1, 结果2, 结果3, 结果4, 结果5, 结果6, 结果7, 结果8, 结果9, 结果10, 结果11, 结果12};dictRetList pinyinToHanzi(ui-label_9-text());this-showDictRetListToLabel(1);} }//数字键的功能函数 void KeyBoardWidget::numberKeySlot(int id) {QString curBtnText this-findChildQPushButton *(numberKekboard_ QString::number(id))-text();this-curFocusWidgetInsertText(curBtnText);//在当前焦点控件光标处添加文本 } 4、符号的输入 符号按键的功能比较简单我使用的是多个信号连接一个槽的机制来管理区分按钮的方式是使用sender()来获取当前发送信号的按键。这里需要注意的是特殊符号需要使用来转义显示否则对应的按钮上不会显示故在处理时需要判断一下。 connect(ui-numberKekboardPoint, QPushButton::clicked, this, KeyBoardWidget::on_symbolBtn_clicked);for (int var 1; var 40; var) {QPushButton *curSymbolBtn this-findChildQPushButton *(symbolBtn_ QString::number(var));if(curSymbolBtn ! nullptr){connect(curSymbolBtn, QPushButton::clicked, this, KeyBoardWidget::on_symbolBtn_clicked);}}void KeyBoardWidget::on_symbolBtn_clicked() {QPushButton *curSymbolBtn qobject_castQPushButton *(sender());if(curSymbolBtn ! nullptr){QString curSymbolStr curSymbolBtn-text();if(curSymbolStr.isEmpty()){return;}if(curSymbolStr ){curSymbolStr ;}this-curFocusWidgetInsertText(curSymbolStr);} } 5、中文的输入 在软键盘的编写中这个是最费时间的也不是说多难难的是找到一个可使用的开源的中文拼音库很难找找了好几天才找到。找到拼音库后移植到自己的代码中进行拼音的输入这里我用了一个label来显示中文的拼音然后从这里获取如上在英文的输入中已有获取方式。 if(bigKeyLanguagesFlag 1){/** ********** 中 ***********/curBtnText curBtnText.toLower();ui-label_9-setText(ui-label_9-text() curBtnText);// dictRetList QStringList{结果1, 结果2, 结果3, 结果4, 结果5, 结果6, 结果7, 结果8, 结果9, 结果10, 结果11, 结果12};dictRetList pinyinToHanzi(ui-label_9-text());this-showDictRetListToLabel(1);} 这里我已经将拼音库的使用封装为函数pinyinToHanzi()传入拼音即可返回对应的汉字列表。获取到汉字列表后使用showDictRetListToLabel()函数来更新显示这个函数将列表以5为单位分页传入的数字即显示的页码。前面说过我的结果显示在label中的所以使用link事件来获取对应的文字和事件设置链接函数如下 void KeyBoardWidget::setTextContentOfLabel(QLabel *label, QString linkStr, QString text) {label-setText(QString(a href %1 style\text-decoration: none;\ style\color: white;\%2/a).arg(linkStr).arg(text)); } 6、中文拼音库的选择 这里可以选择libpinyin或者googlepinyin前者在Linux系统上使用很方便直接使用apt下载即可后者需要下载源码自行进行引用。注意的是libpinyin在Windows系统上使用起来很麻烦建议使用googlepinyin。 libpinyin下载方式 Ubuntu/Debian: sudo apt-get install libpinyin-dev Fedora: sudo dnf install libpinyin-devel源码下载https://github.com/libpinyin/libpinyin googlepinyin下载 https://github.com/aron566/google_pinyinim 下载完成后他们在github中都有使用示例 照着用就可以不需要额外的什么但是要注意词库的路径要正确。 7、其他 再补充几个关键点 //防止当前窗口获取焦点导致输入控件丢失 this-setWindowFlags(this-windowFlags() | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint | Qt::Tool | Qt::WindowDoesNotAcceptFocus); //获取当前焦点在哪个控件 curFocusWidget QApplication::focusWidget(); //判断焦点控件是否是QLineEdit 类型 if (QLineEdit *lineEdit qobject_castQLineEdit *(curFocusWidget)) {curText lineEdit-text(); } //清除当前焦点关闭键盘的时候会用到 if(curFocusWidget ! nullptr){curFocusWidget-setFocusPolicy(Qt::ClickFocus);curFocusWidget-clearFocus();curFocusWidget nullptr; } //多label链接一个link事件槽 connect(curlabel, QLabel::linkActivated, this, KeyBoardWidget::on_label_1_linkActivated); //使用libpinyin获取的结果格式const char *word retList.append(QString(word)); //使用googlepinyin获取的结果格式ime_pinyin::char16 buf[256] retList.append(QString::fromUtf16(buf)); 8、结语 关于其他的布局或功能实现、结果获取后放入目标控件等等就不过多赘述了还有问题请留言最后放一张我的效果图片
http://www.yingshimen.cn/news/52447/

相关文章:

  • 不知道我自己的网站的ftp账号wordpress编辑网站的链接是中文
  • 淘宝做网站退款网站关键词 提醒
  • 微信链接网页网站制作建设单位网站
  • php 网站部署后乱码湛江企业建站模板
  • 网站手机客户端开发抚宁建设局网站
  • 建设网站方面的知识陶瓷网站源码
  • 建筑公司网站需求婚庆网站建设策划案
  • 新泰网站seo兰州一刀切防疫曝光
  • 有什么网站可以接淘宝设计单做ppt软件
  • 创建网站并制作首页教案wordpress注入漏洞
  • 让别人做网站的话术视频拍摄手法有哪些
  • 山东建设机械协会官方网站易加网站建设方案
  • asp.net网站开发实例视频教程亚马逊跨境电商开店有风险吗
  • 移动网站建设作业搜索引擎分析论文
  • 找做网站的客户营销网站设计
  • 大连网站搭建与推广一个新网站要怎么做seo
  • 东源建设局网站公司网站开发实施方案
  • 外贸找客户有什么网站同城分类网站建设
  • 网站技术维护网站建设设计报告前言
  • 摇钱树手机论坛网站东莞seo技术培训
  • 毕业设计心理评测网站开发苏州网页服务开发与网站建设
  • 小型企业网站模板下载辽宁省建设工程信息网锁丢失
  • 兼职做网站编辑小程序怎么找出来
  • 番禺网站建设多少钱网站建设架构细节
  • 广州网站开发怎么做哪些网站做推广
  • 医疗营销的网站怎么做全球设计网优秀版式作品
  • 电子商务网站建设考试江西房地产网站建设
  • 大气的门户网站做期货应该看的网站
  • 长春 房地产网站建设网站全程设计技术
  • 免费网站建设必择山东绘政科技免费申请电子邮箱