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

便利的赣州网站建设手机怎样设计网站建设

便利的赣州网站建设,手机怎样设计网站建设,企业宣传视频模板素材,天津网站建设案例教程功能描述#xff1a;开发一个类似于 Windows 命令行提示符或 Linux 命令行终端的应用程序 一、最终演示效果 QtCmd 不是因为它是 Qt 的组件#xff0c;而是采用 Qt 开发了一个类似 Windows 命令提示符或者 Linux 命令行终端的应用程序#xff0c;故取名为 QtCmd。 上述演示… 功能描述开发一个类似于 Windows 命令行提示符或 Linux 命令行终端的应用程序 一、最终演示效果  QtCmd 不是因为它是 Qt 的组件而是采用 Qt 开发了一个类似 Windows 命令提示符或者 Linux 命令行终端的应用程序故取名为 QtCmd。 上述演示是在 Win10 操作系统下模拟命令提示符的功能输入错误的指令(如 windows 下输入 ls 指令)错误输出的字体颜色为红色输入正确的指令(如 windows 下输入dir 指令)标准输出的字体颜色显示正常。 本应用程序原为一个项目的子功能实现命令行终端的界面现把这一功能单独封装了一个窗体类分享给大家参考可以直接集成到你的应用程序中。 具体功能使用就不多说了和命令行终端的功能一模一样只是说把这一功能集成到自己的应用程序中了命令行终端支持的指令本终端全部支持。 二、命令行终端程序开发 命令行终端程序主要在 terminalwidget.h 和 terminalwidget.cpp 中封装了 TerminalWidget 类实现了有关命令输入和信息输出的所有功能。 terminalwidget.h 文件代码如下 #ifndef TERMINALWIDGET_H #define TERMINALWIDGET_H#include QTextEdit #include QKeyEvent #include QFont #include QProcess #include QByteArray #include QLabel #include QHBoxLayout #include QVBoxLayout #include QTextLayout #include QTextCursor #include QTextBlock #include QTextCodec #include assert.hclass TerminalWidget: public QTextEdit {Q_OBJECT public:TerminalWidget();protected:void keyPressEvent(QKeyEvent *e);private:// 字体QFont font;// 命令行终端进程QProcess * proc;// 光标位置long long lastPosition 0;// 上一次的输入内容QByteArray lastInput;public slots:/*** brief readyReadStandardOutputSlot 标准输出*/void readyReadStandardOutputSlot();/*** brief readyReadStandardErrorSlot 错误输出*/void readyReadStandardErrorSlot(); };#endif // TERMINALWIDGET_H terminalwidget.cpp 文件代码如下 #include terminalwidget.h #include QDebugTerminalWidget::TerminalWidget() {setStyleSheet(background-color:rgb(0,0,0); color:rgb(255,255,255); border:0px;);setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);resize(1000,700);setWindowTitle(命令行提示符);font.setFamily(Times New Roman);font.setPixelSize(14);setFont(font);proc new QProcess();connect(proc,SIGNAL(readyReadStandardOutput()),this,SLOT(readyReadStandardOutputSlot()));connect(proc,SIGNAL(readyReadStandardError()),this,SLOT(readyReadStandardErrorSlot()));#ifdef Q_OS_WINproc-start(cmd); #elif Q_OS_LINUXproc-start(bash); #endifQTextCursor editCursor textCursor();QTextBlockFormat textBlockFormat;textBlockFormat.setLineHeight(20, QTextBlockFormat::FixedHeight);editCursor.setBlockFormat(textBlockFormat);setTextCursor(editCursor); }void TerminalWidget::keyPressEvent(QKeyEvent *e) {QTextCursor editCursor textCursor();// Qt::Key_Enter 是小键盘数字键盘的 Enter对应的虚拟键码为0x01000005// Qt::Key_Return 是大键盘区的 Enter对应的虚拟键码为0x01000004if(e-key() Qt::Key_Return || e-key() Qt::Key_Enter){e-ignore();editCursor.setPosition(lastPosition, QTextCursor::MoveAnchor);editCursor.movePosition(QTextCursor::End, QTextCursor::KeepAnchor);QString string editCursor.selectedText();editCursor.clearSelection(); #ifdef Q_OS_WINlastInput string.toLocal8Bit() \r \n; #elif Q_OS_LINUXlastInput string.toLocal8Bit() \n; #endifproc-write(lastInput);return;}else if(e-key() Qt::Key_Backspace editCursor.position() lastPosition)return;else if(e-key() Qt::Key_Delete editCursor.position() lastPosition)return;elsereturn QTextEdit::keyPressEvent(e); }void TerminalWidget::readyReadStandardOutputSlot() {QByteArray ba proc-readAllStandardOutput();QTextCodec * textCodec QTextCodec::codecForName(System);// assert 断言如果 textCodec 为空则编译报错assert(textCodec ! nullptr);QString output textCodec-toUnicode(ba);if (output.length() 0 output ! QString::fromLocal8Bit(lastInput)){setTextColor(Qt::white);append(output.trimmed());moveCursor(QTextCursor::End);lastPosition textCursor().position();} }void TerminalWidget::readyReadStandardErrorSlot() {QByteArray ba proc-readAllStandardError();QTextCodec* textCodec QTextCodec::codecForName(System);// assert 断言如果 textCodec 为空则编译报错assert(textCodec ! nullptr);QString output textCodec-toUnicode(ba);if (output.length() 0 output ! QString::fromLocal8Bit(lastInput)){setTextColor(Qt::red);append(output.trimmed());moveCursor(QTextCursor::End);lastPosition textCursor().position();} } 完整的代码已经贴上每个函数的备注写的非常清楚如有不清楚的地方可以私信我。 完整代码压缩包下载地址  https://download.csdn.net/download/tanou3212/88222855https://download.csdn.net/download/tanou3212/88222855如果出现中文乱码的问题请参考我的另外一篇博客《第十课Qt 字符编码和中文乱码相关问题》 百分百能解决你的问题
http://www.dnsts.com.cn/news/165780.html

相关文章:

  • 如何修改网站元素网站快速刷排名工具
  • 做轴承生意的网站开个网站卖机器怎么做
  • 云存储做网站免费企业网站注册
  • 网站友链怎么添加厦门方易网站制作有限公司
  • seo站长助手免费做情网站
  • 宝安营销型网站费用古代中国建筑网站
  • 做网站设计需要什么技术网站建设钅金手指排名
  • 京东云服务器怎么做网站网站服务器规划 用户数
  • 网站单页在线品牌网站设计打造
  • 定制网站建设河间网站网站建设
  • 邢台网站建设服务长沙营销网站建设公司
  • 深圳万户网络科技有限公司seo网站设计招聘
  • 商用高端网站设计新感觉建站一周内重大新闻事件10条
  • 金华建设局政务网站如何做亚马逊备案的网站
  • 广西住房和城乡建设厅网站首页做三个月网站 广告收入
  • 上海市 建设执业资格注册中心网站网页设计制作教程题库
  • 陕西省交通集团建设网站免费建站
  • 公司网站开发软件做网批有专门的网站吗?
  • 上海市建设工程咨询行业协会seo基础培训教程
  • 企业网站开发标准网站seo链接购买
  • 江宁网站建设报价不花钱怎么做网站运营
  • 怎么做能上谷歌网站什么是企业
  • 网站仿制教程创新创业项目计划书
  • 九江 网站建设网站设计由哪个部门做
  • 蓝色风格企业网站模板游戏在线玩免费免登录
  • 海外手表网站学做蛋糕的网站
  • 商城网站做推广方案可以为自己的小说建设网站
  • 免费看电视剧网站2020可以做彩字的网站
  • 哪些网站可以做详情页宠物之家网站开发
  • 怎么建投票网站建设网站的发布与推广