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

做商城网站价格上海做网站建设

做商城网站价格,上海做网站建设,个人域名注册入口,wordpress diaspora一.UI界面搭建 (ui界面使用#xff0c;界面布局#xff0c;各控件介绍#xff0c;界面大小调整) 二.信号槽机制实现文件的打开#xff0c;保存#xff0c;退出 (信号槽#xff0c;QFile文件类#xff0c;QTextStream类#xff0c;QFileDialog文件对话框#xff0…一.UI界面搭建 (ui界面使用界面布局各控件介绍界面大小调整) 二.信号槽机制实现文件的打开保存退出 (信号槽QFile文件类QTextStream类QFileDialog文件对话框QMessage消息对话框) //实现功能 : 打开目标文件按照右下角ComboBox所选编码格式打开 void Widget::on_btnopen_clicked() {//文件内容显示到编辑栏中QString filename QFileDialog::getOpenFileName(this,打开文件,C:\\Users\\SlanderMC\\Desktop);file.setFileName(filename);file.open(QIODevice::ReadWrite|QIODevice::Text);this-setWindowTitle(filename----记事本);QTextStream stream(file);switch (ui-comboBox-currentIndex()) {case 0:stream.setEncoding(QStringConverter::Utf8);break;case 1:stream.setEncoding(QStringConverter::Utf16);break;case 2:stream.setEncoding(QStringConverter::Utf32);break;case 3:stream.setEncoding(QStringConverter::Utf32BE);break;}QString str stream.readAll();ui-textEdit-setText(str);ui-fontsizelabel-setText(QString(%1 px).arg(ui-textEdit-font().pointSize())); }//实现功能 : 若已打开文件直接保存内容到当前文件 若未打开则用户选择路径进行保存 void Widget::on_btnsave_clicked() {//编辑后的内容保存到文件if(!file.isOpen()){QString strsave QFileDialog::getSaveFileName(this,保存文件,C:\\Users\\SlanderMC\\Desktop);file.setFileName(strsave);file.open(QIODevice::WriteOnly|QIODevice::Text);this-setWindowTitle(strsave----记事本);}QTextStream stream(file);//按照当前的编码格式写入switch (ui-comboBox-currentIndex()) {case 0:stream.setEncoding(QStringConverter::Utf8);break;case 1:stream.setEncoding(QStringConverter::Utf16);break;case 2:stream.setEncoding(QStringConverter::Utf32);break;case 3:stream.setEncoding(QStringConverter::Utf32BE);break;}stream.seek(0);streamui-textEdit-toPlainText();}//实现功能 : 使用消息对话框,判断用户是否保存 //保存丢弃(断开连接置空文本框)退出 void Widget::on_btnclose_clicked() {int res QMessageBox::warning(this,提示,您想要保存吗?,QMessageBox::Save|QMessageBox::Discard|QMessageBox::Cancel);switch (res) {case QMessageBox::Save:on_btnsave_clicked();break;case QMessageBox::Discard:ui-textEdit-clear();if(file.isOpen()){file.close();this-setWindowTitle(记事本);}break;case QMessageBox::Cancel://不做处理break;} } 三.实现文件切换编码格式功能 (QTextStream类comboBox选择框控件) //实现功能 : 实施切换当前文件读取的编码格式 void Widget::on_comboBox_currentIndexChanged(int index) {if(file.isOpen()){int index ui-comboBox-currentIndex();QTextStream stream(file);switch (index) {case 0:stream.setEncoding(QStringConverter::Utf8);break;case 1:stream.setEncoding(QStringConverter::Utf16);break;case 2:stream.setEncoding(QStringConverter::Utf32);break;case 3:stream.setEncoding(QStringConverter::Utf32BE);break;}//seek切换文件光标位置stream.seek(0);ui-textEdit-setText(stream.readAll());} } 四.实现鼠标当前所在行高亮的功能并在右下角显示行列 textEdit标准控件ExtraSelection类(包括cursor和QTextCharFormat两个成员) //TextEdit的光标移动信号 “cursorPositionChanged” 对应的槽函数 on_textEdit_cursorPositionChanged //--------实现功能 : 根据光标位置在右下角显示行列 void Widget::on_textEdit_cursorPositionChanged() {//textCursor光标类返回一个可视光标QTextCursor tc ui-textEdit-textCursor();//获取行列int block tc.blockNumber()1;int column tc.columnNumber()1;//字符串拼接,标签更改QString str QString(第%1行,第%2列).arg(block).arg(column);ui-labelhl-setText(str);//QTextEdit::ExtraSelection 是一个在 QTextEdit 中用来表示额外的文本选择和高亮的结构。//设置当前行高亮QListQTextEdit::ExtraSelection extralist;//ExtraSelection结构体包括两个成员 QTextCursor 和 QTextCharFormatQTextEdit::ExtraSelection extra;//QTextCursor 表示在文本中的一个位置或者区间而extra.cursor tc;//QTextCharFormat 用于定义这个区间的格式比如背景颜色、字体,下划线等。QTextCharFormat f;f.setBackground(QBrush(Qt::lightGray));f.setFontUnderline(true);f.setUnderlineColor(Qt::white);f.setUnderlineStyle(QTextCharFormat::WaveUnderline);//配置整行显示,否则无效f.setProperty(QTextFormat::FullWidthSelection,true);extra.format f;extralist.append(extra);ui-textEdit-setExtraSelections(extralist);} 五.实现CtrlO打开,CtrlS保存等快捷键功能 QShortCut类QKeySequence类lambda表达式实现信号槽 Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) {ui-setupUi(this);ui-textEdit-installEventFilter(this);this-setWindowIcon(QIcon(:/resourse/open2.png));this-setWindowTitle(记事本);this-setLayout(ui-verticalLayout); //整体Widget垂直布局//快捷键 QT提供的QShortcut类// 并将其快捷键序列设置为 CtrlN实现的。//QKeySequence用以设置快捷键//绑定其activated信号连接到一个槽函数QShortcut *cutopen new QShortcut(QKeySequence(CtrlO),this);QShortcut *cutsave new QShortcut(QKeySequence(CtrlS),this);connect(cutopen,QShortcut::activated,[](){this-on_btnopen_clicked();});connect(cutsave,QShortcut::activated,[](){this-on_btnsave_clicked();}); }六.实现字体放大缩小功能实时显示 (快捷键实现) void Widget::fontsizeup() {QFont font ui-textEdit-font();font.setPointSize(font.pointSize()1);ui-textEdit-setFont(font);ui-fontsizelabel-setText(QString(%1 px).arg(font.pointSize())); }void Widget::fontsizedown() {QFont font ui-textEdit-font();font.setPointSize(font.pointSize()-1);ui-textEdit-setFont(font);ui-fontsizelabel-setText(QString(%1 px).arg(font.pointSize())); }//设置快捷键字体放大缩小QShortcut *cutsizeup new QShortcut(QKeySequence(Ctrl),this);QShortcut *cutsizedown new QShortcut(QKeySequence(Ctrl-),this);connect(cutsizeup,QShortcut::activated,[](){fontsizeup();});connect(cutsizedown,QShortcut::activated,[](){fontsizedown();});七.实现字体放大缩小功能(Ctrl滚轮实现) (QT事件事件过滤器eventFilterQEvent类及其子类事件处理流程事件处理函数重写) ①定义一个新的QTextEdit类重写其事件处理函数并将原本的QTextEdit提升为此类 头文件 #ifndef MYTEXTEDIT_H #define MYTEXTEDIT_H#include QTextEdit #include QWidgetclass mytextedit : public QTextEdit {Q_OBJECT public:explicit mytextedit(QWidget *parent nullptr);void wheelEvent(QWheelEvent *e) override;void keyPressEvent(QKeyEvent *e)override;void keyReleaseEvent(QKeyEvent *e)override; private:bool keyPress false; signals:};#endif // MYTEXTEDIT_H 源文件 #include mytextedit.h #includeQDebug #include QTextEdit #include QWheelEvent mytextedit::mytextedit(QWidget *parent): QTextEdit{parent} {}void mytextedit::wheelEvent(QWheelEvent *e) {if(keyPress true) //按下Ctrl时滑动滚轮切换字体大小{if(e-angleDelta().y() 0 ){zoomIn();}else{zoomOut();}e-accept();}else //没有摁下Ctrl时,默认调动滑块{QTextEdit::wheelEvent(e);} }void mytextedit::keyPressEvent(QKeyEvent *e) {if(e-key() Qt::Key_Control) //按下Ctrl{this-keyPress true;}QTextEdit::keyPressEvent(e); }void mytextedit::keyReleaseEvent(QKeyEvent *e) {if(e-key() Qt::Key_Control) //按下Ctrl{this-keyPress false;}QTextEdit::keyReleaseEvent(e); }②.重写事件过滤器 事件处理之前需要经过事件过滤处理所以也可以在事件过滤函数中对某些事件进行拦截比如这里的鼠标滚轮事件。 true表示事件处理完毕不再向下分发false表示事件继续向下分发。 事件过滤器需要安装在某个组件上这里需要安装在Widget类下的TextEdit所以过滤器定义在Widget下并在TextEdit上进行安装。 重写eventFilter //先前对于事件的处理都是直接重写事件处理函数此次借用 EventFilter事件过滤器来实现对于指定事件的处理 //事件发生-事件过滤-事件分发(分类)-事件处理 //在过滤阶段处理逻辑写完后不希望事件继续排放返回true表示事件已处理完毕。反之返回false继续向下派发由事件处理函数处理 bool Widget:: eventFilter(QObject *watched, QEvent *event) {QKeyEvent *e (QKeyEvent*)event;if(e-key() Qt::Key_Control ){if(e-type() QKeyEvent::KeyPress){qDebug()key;this-isWheel true;}else if(e-type() QKeyEvent::KeyRelease){qDebug()release;this-isWheel false;}}QWheelEvent *e1 (QWheelEvent*) event;if(e1-type() QEvent::Wheel){if(this-isWheel){if(e1-angleDelta().y() 0){fontsizeup();}else if (e1-angleDelta().y() 0){fontsizedown();}return true;}else{return false;}} }
http://www.w-s-a.com/news/406854/

相关文章:

  • 广州制作外贸网站公司阿里云网站模板
  • 做网站为什么要买服务器十堰城市建设网站
  • 西安网站seo技术厂家东莞如何制作免费的网页
  • 做旅游的网站的目的和意义极限优化wordpress
  • 做美食视频网站有哪些品牌营销策划机构
  • 佛山知名营销网站开发wordpress可视化编辑器排行
  • 石岩做网站哪家好石家庄做网站设计
  • 建设网站需要冠县做网站
  • 保定网站seo哪家公司好wordpress教程视频下载
  • 网站开发 哪些文档网站海外推广方法
  • 广西建设局网站首页如何做条形码网站怎么搞
  • 琼海建设网站wordpress 商城站下载地址
  • 网站需要多大数据库divider wordpress
  • 兰州北京网站建设网络广告推广网站
  • 宁晋网站建设森网站建设
  • 网站没有收录原因trel域名
  • 建设门户网站的目的和需求台州专业网站建设方案
  • 苏州网站建设系统方案成都行业网站设计
  • wordpress多说读者墙seo分析师招聘
  • 视频网站开发计划书wordpress文件详情
  • 重庆付费网站推广电商网站 开发周期
  • thinkcmf 做企业网站视频播放类网站建设费用
  • vps网站助手大学选修课网站建设
  • 南浦电商网站建设北京海淀社保网站
  • 传奇网站模板怎么做的吗大连警方最新通告
  • 成都私人做公司网站的北京网站建设需要多少钱
  • 魔客吧是什麼程序做的网站代理厦门网站设计公司
  • 90设计手机站东营网站推广
  • 哪家购物网站建设好专门做水生植物销售网站
  • php医院网站开发兼职app开发网上app开发