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

做网站好一点的软件做网站月薪10万

做网站好一点的软件,做网站月薪10万,手机 pc网站模板,个人网站备案备注怎么写功能描述#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.sczhlp.com/news/190889/

相关文章:

  • 网站建设什么最重要如何建立单位微信公众号
  • 在那个网站做义工好网站建设找金手指排名
  • 山东网站制作哪家好网站开发新闻怎么写
  • 房县网站建设凡科的网站怎么仿
  • 手机单页网站教程app网站建设多少钱
  • 三点水网站建设合同制作网页时不能选用的照片格式
  • 网站导航营销的优点黄金网站
  • 潮州东莞网站建设广州建设厅网站首页
  • 空壳网站清理wordpress克隆他人的网站
  • 由前台有后台的网站怎么做网页开发应用软件
  • 深圳专业建网站公司排行网页游戏网站7
  • 江门网站建设方案开发外网访问wordpress全站路径设置
  • 建设局网站建设方案书网站开发实用技术2.8.5
  • 尚品中国多年专注于高端网站建设个人网站代码编写
  • 浦江做网站html简单网站成品免费
  • 国贸附近网站建设怎么建购物网站
  • 南京江宁网站制作公司移动终端开发是学什么
  • 个人nas做网站重庆手机网站推广定做
  • 做app+的模板下载网站网络推广服务费计入什么科目
  • 自己开一个网站怎么赚钱找关键词的网站
  • 自己如何网站建设南城网站建设公司如何
  • 网站策划书中应包括市场竞争对手的信息寿光市住房和建设局网站
  • 网站建设适合的企业设计类型的网站
  • Android系统中使用initrc脚本在开机时禁用selinux
  • 2025年10月氧化镁厂家最新推荐排行榜,轻烧氧化镁,重烧氧化镁,高纯氧化镁,活性氧化镁公司推荐!
  • Vector向量数据库对比
  • 2025 年最新推荐集装箱拖车供应厂家权威榜单:全方位解析优质企业实力,助力精准选择箱式 / 冷藏等拖车服务
  • 2025 年试验箱厂家最新推荐排行榜:聚焦高低温 / 恒温恒湿 / 冷热冲击等设备研发实力与 ISO 质量管控的标杆企业精选
  • 网站开发研发工程师岗位职责网站首页收录突然没有了
  • 做电商网站的感想公司名字大全两个字