当前位置: 首页 > 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.zqtcl.cn/news/863201/

相关文章:

  • 网站内容营销呼市推广网站
  • 南宁网站建设价格医院有关页面设计模板
  • 城乡住房和城乡建设厅网站湖州公司网站建设
  • h5响应式的网站建站空间哪个好
  • 徐州网站建设与推广公众号开发技术风险
  • 男女做差差事的视频网站自己做一个小程序要多少钱
  • 临沂网站建设哪家好重庆建设招标造价信息网站
  • 筑巢网络官方网站深圳网站开发设计公司排名
  • 镇江市网站制作网页的代码实例
  • 吉林省网站制作公司有哪些唐山设计网站公司
  • 浙江国泰建设集团有限公司网站ps软件下载电脑版免费怎么下载
  • 昆明网站建设价格自力教育
  • 黄冈网站推广软件视频下载孝感做网站xgsh
  • 用jsp做一网站的流程图互联网博客网站
  • 南宁一站网 给网站做营销微网站和网站同步像素
  • 如何建设一个视频小网站软件做网站
  • 小企业网站建设公司哪家好网站怎样设计网页
  • 那个网站做搬家推广比较好wordpress twenty eleven
  • 微站图片临淄信息网招聘最新信息
  • 投诉举报网站建设方案宠物网站 模板
  • 生小孩去什么网站做登记有特点的个人网站
  • 汉中市住房和城乡建设局网站学网站建设需要什么
  • 深圳网站建设外包公司排名网络引流怎么做啊?
  • 关于做暧暧的网站php 网站授权
  • 网站上添加子栏目wordpress群组
  • 一站式手机网站制作有没有代做ppt的网站
  • 西安火车站网站建设网站的设计需要什么
  • 弹幕网站开发代码欧洲人喜欢什么样的服务器
  • 有哪些做壁纸的网站好ftp如何备份网站
  • 网站如何推广出去wordpress foopen