QT5笔记:3.手动撸界面和可视化托界面混合
3.手动撸界面和可视化托界面混合
3.1 工具栏可以通过在UI界面右键选择添加工具栏
3.2 设置窗口中心内容 setCentralWidget
// https://blog.csdn.net/u012627502/article/details/38613041
//一个Qt主窗口应用程序必须有一个中心窗口部件(Central Widget)。当你采用Qt Designer创建主窗口时,默认情况下,系统已经为你创建了一个中心窗口部件,它是子类化QWidget的。
setCentralWidget(ui->textEdit);
3.3 文本处理小程序
#include "mainwindow.h"
#include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
setCentralWidget(ui->textEdit);//将文本框设为中心控件 initUI();//初始化自定义的ui
initSignalSlot();//初始化信号&槽
} MainWindow::~MainWindow()
{
delete ui;
} /**
* @brief MainWindow::initUI 初始化界面,并将其他控件添加到状态栏或者工具栏
*/
void MainWindow::initUI()
{
labelFileName = new QLabel();
labelFileName->setMinimumWidth(150);
labelFileName->setText("当前文件:");
ui->statusbar->addWidget(labelFileName); //将QLabel添加到状态栏 processBar = new QProgressBar();
processBar->setMinimum(5);
processBar->setMaximum(80);
processBar->setValue(ui->textEdit->font().pointSize());
ui->statusbar->addWidget(processBar);//将进度条添加到状态栏 spinBoxFontSize = new QSpinBox();
spinBoxFontSize->setMinimum(5);
spinBoxFontSize->setMaximum(80);
spinBoxFontSize->setValue(ui->textEdit->font().pointSize());
ui->toolBar->addWidget(new QLabel("字号"));
ui->toolBar->addWidget(spinBoxFontSize);//将数字调整框添加到状态栏 fontComboBox = new QFontComboBox();
fontComboBox->setCurrentFont(ui->textEdit->font());
ui->toolBar->addWidget(new QLabel("字体"));
ui->toolBar->addWidget(fontComboBox);//将字体选择框添加到状态栏 ui->actBold->setChecked(ui->textEdit->font().bold());
ui->actItalic->setChecked(ui->textEdit->font().italic());
ui->actUnderline->setChecked(ui->textEdit->font().underline());
} /**
* @brief MainWindow::initSignalSlot 连接信号和槽
* @note 如果信号或者槽写错了,不会抛出异常,所以信号和槽要严格按照方法的签名拼写,一个符号都不能出错
*/
void MainWindow::initSignalSlot()
{
connect(spinBoxFontSize,SIGNAL(valueChanged(int)), this, SLOT(on_spinBox_valueChanged(int)));
connect(fontComboBox, SIGNAL(currentIndexChanged(const QString&)), this, SLOT(on_fontComboBox_indexChanged(const QString&)));
} /**
* @description 将所选文本样式加粗
* @brief MainWindow::on_actUnderline_triggered
* @param checked
*/
void MainWindow::on_actBold_triggered(bool checked)
{
QTextCharFormat format;// = ui->textEdit->currentCharFormat();
format.setFontWeight(checked? QFont::Bold : QFont::Normal);
ui->textEdit->mergeCurrentCharFormat(format);
} /**
* @description 将所选文本样式添加斜体
* @brief MainWindow::on_actItalic_triggered
* @param checked
*/
void MainWindow::on_actItalic_triggered(bool checked)
{
QTextCharFormat format;// = ui->textEdit->currentCharFormat();
format.setFontItalic(checked);
ui->textEdit->mergeCurrentCharFormat(format);
} /**
* @description 将所选文本样式添加下划线
* @brief MainWindow::on_actUnderline_triggered
* @param checked
*/
void MainWindow::on_actUnderline_triggered(bool checked)
{
QTextCharFormat format;// = ui->textEdit->currentCharFormat();
format.setFontUnderline(checked);
ui->textEdit->mergeCurrentCharFormat(format);
} /**
* @description 当文本框不能被复制时,禁用工具栏复制、剪切、粘贴按钮
* @brief MainWindow::on_textEdit_copyAvailable
* @param b
*/
void MainWindow::on_textEdit_copyAvailable(bool b)
{
ui->actCut->setEnabled(b);
ui->actCopy->setEnabled(b);
ui->actPaste->setEnabled(ui->textEdit->canPaste());
} /**
* @description 当选中的文本变化时,工具栏的加粗、倾斜、下划线等按钮与文本样式一致
* @brief MainWindow::on_textEdit_selectionChanged
*/
void MainWindow::on_textEdit_selectionChanged()
{
QTextCharFormat format = ui->textEdit->currentCharFormat();
ui->actBold->setChecked(format.font().bold());
ui->actItalic->setChecked(format.fontItalic());
ui->actUnderline->setChecked(format.fontUnderline());
} /**
* @description 字号框大小改变时,修改选中的文本字号
* @brief MainWindow::on_spinBox_valueChanged
* @param fontSize
*/
void MainWindow::on_spinBox_valueChanged(int fontSize)
{
QTextCharFormat format;
format.setFontPointSize(fontSize);
ui->textEdit->mergeCurrentCharFormat(format);
processBar->setValue(fontSize);
} /**
* @description 字体选择框改变时,设置字体
* @brief MainWindow::on_fontComboBox_indexChanged
* @param fontStyle
*/
void MainWindow::on_fontComboBox_indexChanged(const QString &fontStyle)
{
QTextCharFormat format;
format.setFontFamily(fontStyle);
ui->textEdit->mergeCurrentCharFormat(format);//mergeCurrentCharFormat这会保留原本字体的其他风格,尤其是文本的字号或者风格不一样时,将会显示效果
}
QT5笔记:3.手动撸界面和可视化托界面混合的更多相关文章
- Vue UI 可视化项目管理界面
除了直接使用npm的命令进行安装脚手架的安装以外,我们还可以使用Vue提供的GUI方法vue ui来进行项目的构建以及安装 win+R powershell 打开终端 在一个干净的目录下输入命令 vu ...
- [R语言] ggplot2入门笔记4—前50个ggplot2可视化效果
文章目录 通用教程简介(Introduction To ggplot2) 4 ggplot2入门笔记4-前50个ggplot2可视化效果 1 相关性(Correlation) 1.1 散点图(Scat ...
- eclipseMARS2.0使用可视化设计界面——配置window builder
1.查看eclipse版本 不同版本的eclipse对应不同的版本window builder,如果不知道版本的话可以通过,点击HELP——>about eclipse来查看自己eclipse的 ...
- iOS 界面 之 EALayout 无需反复编译,可视化实时界面,告别Storyboard AutoLayout Xib等等烦人的工具
http://blog.csdn.net/fatherhui iOS开发,EALayout 无需反复编译,可视化实时界面,告别Storyboard AutoLayout Xib等等烦人的工具 EALa ...
- deepin linux学习笔记(四)进不去图形界面怎么办?
目录 deepin linux学习笔记(四)进不去图形界面怎么办? 前言 更换成lxde桌面 进不去图形界面怎么办? 总结 deepin linux学习笔记(四)进不去图形界面怎么办? 前言 生命不息 ...
- 第15.10节 PyQt(Python+Qt)入门学习:Qt Designer可视化设计界面组件与QWidget类相关的组件属性详解
PyQt学习有阵子了,对章节的骨架基本考虑好了,准备本节就写组件的属性的,结果一是日常工作繁忙,经常晚上还要加班,二是Qt的组件属性很多,只能逐一学习.研究和整理,花的时间有点长,不过终于将可视化设计 ...
- 【WPF学习笔记】之如何传递第一个登录界面的值到下一个页面显示:动画系列之(三)
... ... 承接系列(二) 在之前的登录后台已设置发送到主界面: 在主界面接收传递的值: using System; using System.Collections.Generic; using ...
- 如何在Winform界面中设计图文并茂的界面
在Winform里面,很多控件元素都是标准的,如图标.按钮.工具栏等等,所以一般设计标准的Winform界面比较快捷,但是往往这样的界面相对单调一些,特别在界面控件比较少的情况下,我们往往需要加入一些 ...
- Android开发之Intent跳转到系统应用中的拨号界面、联系人界面、短信界面
现在开发中的功能需要直接跳转到拨号.联系人.短信界面等等,查找了很多资料,自己整理了一下. 1.跳转到拨号界面,代码如下: 1)直接拨打 Intent intentPhone = new Intent ...
- linux直接启动到字符界面或从字符界面启动到图形化界面
修改/etc/inittab文件 将内容为:"id:5:initdefault"的行的数字5改为3,保存重启即可直接进入字符界面 PS:3和5分别表示运行级别 从字符界面启动到图形 ...
随机推荐
- 关于IMultiValueConverter的使用
在前端向后端传递数据的过程中,因为涉及多个属性的调用,将数据绑定到CommandParameter,采用了多值转换器进行数据传递. class MultiBindingConverter : IMul ...
- 《JavaScript 模式》读书笔记(6)— 代码复用模式1
我们有开始进入新篇章了.这篇内容主要讲代码复用模式,实际上代码复用,就是继承啊,原型啊,构造函数啊等等这一类的内容.对于前端进阶来说,是很重要的基础知识.这一篇内容会对原型. 继承有很深入的讲解.我也 ...
- C++ Builder 开发64程序 使用AnsiString的ToInt和ToDouble会内存泄漏
AnsiString str="adsfaga"; try { int v=str.ToInt(); } catch(...) { } 上面的代码,在C++ Builder 10 ...
- 【第2章】matlab程序设计基础
matlab语言的常量与变量 matlab语言的变量命名规则 由一个字母引导,后面可以为其他字符. 区分大小写 如Abc ≠ ABc matlab的保留常量 以下为系统保留常量,自己定义的变量不能与他 ...
- 小程序 + node koa2 session存储验证码碰到最大的坑,(喜极而泣 /狗头)
问题:session存验证码.本地拿postman测试了半天,都没有问题. 但到了小程序,服务端再获取(ctx.session.verifyCode)就一直提示不存在.undefined 小程序会 ...
- 使用 VS Code 徒手构建 PDF 文件
使用 VS Code 徒手构建 PDF 文件 PDF 文件是广泛应用的页面描述文件格式,从本质上讲,文件内部的结构混合使用了文本格式描述和二进制格式描述,对于简单的文件,比如说我们今天要创建的第一个 ...
- LeetCode题集-9 - 回文数
题目:给你一个整数 x ,如果 x 是一个回文整数,返回 true :否则,返回 false . 回文数 是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 例如,121 是回文,而 123 不 ...
- 第1章04节 | 常见开源OLAP技术架构对比
https://zhuanlan.zhihu.com/p/266402829 1. 什么是OLAP OLAP(On-line Analytical Processing,联机分析处理)是在基于数据仓库 ...
- Qt编写物联网管理平台34-地图按钮
一.前言 地图按钮很常见,这也是用户给钱就干的一个模块.设备现场提供了对应的地图文件,其实就是图片文件,做的简单点就是直接CAD图纸转成jpg,做的精致点就是搞了3D风格的立体样式图片,其实还是图片, ...
- 字符编码技术专题(一):快速理解ASCII、Unicode、GBK和UTF-8
本文由阮一峰(ruanyifeng.com)分享,本文收录时有内容修订和排版优化. 1.引言 今天中午,我突然想搞清楚 Unicode 和 UTF-8 之间的关系,就开始查资料. 这个问题比我想象的复 ...