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

哪些网站可以做推广福州搜索引擎优化公司

哪些网站可以做推广,福州搜索引擎优化公司,明年做那些网站能致富,新浪网站用什么语言做的4-主窗口 1、简介2 菜单栏、工具栏、状态栏2.1 菜单栏2.2 QAction2.3 工具栏2.4 状态栏 3 混合方式UI设计 1、简介 QMainWindow是一个为用户提供主窗口程序的类,包含一个菜单栏、多个工具栏、多个停靠控件、一个状态栏以及一个中心控件,是许多应用程序&…

4-主窗口

  • 1、简介
  • 2 菜单栏、工具栏、状态栏
    • 2.1 菜单栏
    • 2.2 QAction
    • 2.3 工具栏
    • 2.4 状态栏
  • 3 混合方式UI设计

1、简介

  • QMainWindow是一个为用户提供主窗口程序的类,包含一个菜单栏、多个工具栏、多个停靠控件、一个状态栏以及一个中心控件,是许多应用程序(比如文本编辑器、图片编辑器等)的基础。
  • 主窗口具有自己的布局管理器,因此不允许在主窗口上设置或创建布局管理器。但是在中心控件上可以设置。
    在这里插入图片描述

2 菜单栏、工具栏、状态栏

2.1 菜单栏

  • 菜单是一些列命令的列表
  • 为了实现菜单、工具栏按钮、键盘快捷方式等命令的一致性,Qt使用动作(QAction)来表示这些命令
  • Qt的菜单就是由一系列的QAction动作对象构成的列表
  • 菜单栏是包含菜单的面板,位于主窗口标题栏的下面
  • 一个主窗口只能有一个菜单栏

2.2 QAction

  • QAction类提供了抽象的用户界面action,这些action可以被放置在窗口控件中
  • QAction可以被添加到菜单和工具栏中,并且可以自动保持在菜单和工具栏中的同步。
  • QAction是可以作为独立的对象被创建,也可以在构建菜单时创建。
  • QAction可以包含一个图标、菜单文本、快捷键、状态文本等。
  • 只有将QAction添加到窗口控件上,才可以使用这些QAction。

2.3 工具栏

  • 工具栏是由一系列的类似于按钮的动作排列而成的面板,它通常由一些经常使用的命令(动作)组成
  • 工具栏位于菜单栏的下面、状态栏的上面,可以停靠在主窗口的上下左右四个方向
  • 一个主窗口可以包含多个工具栏

2.4 状态栏

  • 提供一个用于展示状态信息的水平栏

3 混合方式UI设计

  • 可视化UI设计无需人工编写代码区处理大量繁琐的界面组件的创建和布局管理工作,可以直观地进行界面设计,大大提高工作效率。但某些组件无法可视化地添加到界面上。
  • 采用纯代码方式进行UI设计虽然无所不能,但是设计效率太低,过程非常繁琐。
  • 混合方式创建UI,即部分界面设计用UI设计器可视化实现,部分无法在UI设计器里实现的界面设计用代码实现。
    案列:实现下面的窗口及其功能
    在这里插入图片描述

1: 新建工程名为Editor,基类是QMainWindow,UI组件选择Text Edit,在窗口上选择控件-》视图-》action editor,在弹出的窗口中,新建下面的选项
在这里插入图片描述

2:设计菜单栏
在窗口上方输入文件,然后将action控件拖入其中
在这里插入图片描述

将控件拖入,当上方出现红色线条时,就说明成功了
在这里插入图片描述

然后依次完成以下页面的设计
在这里插入图片描述

3:设计工具栏
在窗口空白处单击,选择添加工具栏,依次将action控件拖入其中,效果如下
在这里插入图片描述

4:设计相关的槽函数,其中粘贴、剪切、复制、退出和清空不需要我们自定义槽函数,可以在页面上选择,其他均需要生成对应的槽函数。页面可选择如下:
在这里插入图片描述

自己选择的如下:
在这里插入图片描述

其中粗体、斜体、下划线、工具栏、状态栏是需要选择triggered(bool checked)这个槽函数的
在Text Edit控件中需要选择两个槽函数
在这里插入图片描述

5:根据原图,我们还需要字体和字号的控件,这俩需要我们自己书写定义

private:
// 自定义的槽函数void on_m_combFontName_currentIndexChanged(const QString &fontName);void on_m_spinFontSize_valueChanged(int fontSize);
// 变量QFontComboBox * m_combFontName;// 字体组合框对象指针QSpinBox* m_spinFontSize;// 存储字号QLabel* m_labCurFile;//当前文件

6:书写逻辑,源文件如下

EditorWindow::EditorWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::EditorWindow)
{ui->setupUi(this);// 设置中心组件setCentralWidget(ui->m_edit);// 设计工具栏ui->toolBar->addSeparator();// 添加分隔符 在当前工具栏的末尾添加ui->toolBar->addWidget(new QLabel(" 字体大小:"));// 字号大小m_spinFontSize = new QSpinBox; // 字号选择框m_spinFontSize->setMinimumWidth(60);//最小的宽度m_spinFontSize->setRange(8,72);// 字号大小的范围ui->toolBar->addWidget(m_spinFontSize);ui->toolBar->addWidget(new QLabel(" 字体名称:")); // 字体名称m_combFontName = new QFontComboBox;// 字体选择框m_combFontName->setMinimumWidth(80);//最小的宽度ui->toolBar->addWidget(m_combFontName);m_labCurFile = new QLabel("当前文件: "); // 添加尾部状态栏m_labCurFile->setMinimumWidth(400);ui->statusbar->addWidget(m_labCurFile);//建立信号和槽的连接// 字体选择connect(m_combFontName,SIGNAL(currentIndexChanged(QString)),this,SLOT(on_m_combFontName_currentIndexChanged(QString)));// 字号选择connect(m_spinFontSize,SIGNAL(valueChanged(int)),this,SLOT(on_m_spinFontSize_valueChanged(int)));
}
// 新建的槽函数
void EditorWindow::on_m_actNew_triggered(){QMessageBox::information(this,windowTitle(),"新建 文件 等待 处理");
}
// 打开的槽函数
void EditorWindow::on_m_actOpen_triggered()
{QMessageBox::information(this,windowTitle(),"打开 文件 等待 处理");}// 粗体的槽函数void EditorWindow::on_m_actBold_triggered(bool checked){QTextCharFormat fmt;fmt.setFontWeight(checked ? QFont::Bold : QFont::Normal);ui->m_edit->mergeCurrentCharFormat(fmt);
}
// 斜体的槽函数
void EditorWindow::on_m_actItalic_triggered(bool checked)
{QTextCharFormat fmt;fmt.setFontItalic(checked);ui->m_edit->mergeCurrentCharFormat(fmt);
}
// 下划线的槽函数
void EditorWindow::on_m_actUnderline_triggered(bool checked)
{QTextCharFormat fmt;fmt.setFontUnderline(checked);ui->m_edit->mergeCurrentCharFormat(fmt);
}
// 状态栏的槽函数
void EditorWindow::on_m_actStatusbar_triggered(bool checked)
{ui->statusbar->setHidden(!checked);
}
// 工具栏的槽函数
void EditorWindow::on_m_actToolbar_triggered(bool checked)
{ui->toolBar->setHidden(!checked);
}
// 关于的槽函数
void EditorWindow::on_m_actAbout_triggered()
{QMessageBox::information(this,windowTitle(),"关于 文件 等待 处理");
}
// 文本框 可复制槽函数
//何时m_edit中的信息可以被拷贝 - 复制/剪切
//如果不能复制和剪切 - 将两个QAction禁用
//文本框 文字改变槽函数
void EditorWindow::on_m_edit_copyAvailable(bool b)
{// 复制使能ui->m_actCopy->setEnabled(b);// 剪切使能ui->m_actCut->setEnabled(b);
}
// 文本发生改变的 槽函数  文本发生改变时判断是否可以清空
void EditorWindow::on_m_edit_textChanged()
{ui->m_actClear->setEnabled(ui->m_edit->toPlainText().size());
}
// 文本框 文本选择改变槽函数
void EditorWindow::on_m_edit_selectionChanged()
{// 当有文本选中时,查看对应文本已经设置的格式QFont font = ui->m_edit->currentFont();ui->m_actBold->setChecked(font.bold());//粗体ui->m_actItalic->setChecked(font.italic());//斜体ui->m_actUnderline->setChecked(font.underline());//下划线m_combFontName->setCurrentFont(font);// 字体m_spinFontSize->setValue(font.pointSize());
}
// 字体变化槽函数
void EditorWindow::on_m_combFontName_currentIndexChanged(const QString &fontName){QTextCharFormat fmt;fmt = ui->m_edit->currentCharFormat();fmt.setFontFamily(fontName);ui->m_edit->mergeCurrentCharFormat(fmt);
}
// 字号变化槽函数
void EditorWindow::on_m_spinFontSize_valueChanged(int fontSize){QTextCharFormat fmt;fmt = ui->m_edit->currentCharFormat();fmt.setFontPointSize(fontSize);ui->m_edit->mergeCurrentCharFormat(fmt);
}
http://www.15wanjia.com/news/21279.html

相关文章:

  • 个人网站网站精准网站seo诊断报告
  • 宜昌网站建设哪家好长尾关键词查询工具
  • 巫山网站开发十堰seo
  • 做流量网站挂广告还能挣钱吗要看网的域名是多少
  • 芜湖网站建设长沙官网优化公司
  • 网页制作项目简介范文郑州官网网站推广优化公司
  • 鲜花网站源码百度账号登录入口
  • 2024年北京疫情消息1小时前windows优化大师好吗
  • 做网站租服务器一年多少钱今日热点新闻一览
  • 为什么只有中国做网站需要备案上往建站
  • wordpress vue react专业seo关键词优化
  • 微信网站地址站长推荐
  • 盘锦网站开发公司网站seo优化总结
  • wordpress正在连接seo的优缺点
  • 石家庄栾城区建设局网站互联网广告代理
  • 遂宁市网站建设新冠疫情最新消息
  • 网络做翻译的网站新手怎么学做电商
  • 怎样向搜索引擎提交网站淘宝运营主要做些什么
  • 淄博网站建设电话咨询关键词你们懂的
  • 做擦边球网站赚钱么seo超级外链
  • 建筑工程网上预缴增值税兰州seo技术优化排名公司
  • wordpress电商平台插件seo模拟点击算法
  • 东莞app优化防疫政策
  • 苏州网站维护怎么写软文
  • 建立门户网站的步骤seogw
  • 犀牛云做网站怎么做百度怎么精准搜索
  • 网推团队seo虚拟外链
  • 秦皇岛建设路小学网站搜索引擎排名优化seo课后题
  • wordpress 重复文章广州seo公司如何
  • 电子政务 和网站建设总结长沙百度seo