Qt纯代码实现UI界面

1.相关信息

设置编辑框内容的字体样式,包括加粗、下划线、斜体、蓝色、红色、黑色

2.界面展示

3.相关代码

#include "dialog.h"
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QCheckBox>
#include <QRadioButton>
#include <QPlainTextEdit>
#include <QPushButton>// 下划线
void Dialog::do_chkBoxUnder(bool checked)
{QFont font = txtEdit->font();font.setUnderline(checked);txtEdit->setFont(font);
}// 斜体
void Dialog::do_chkBoxItalic(bool checked)
{QFont font = txtEdit->font();font.setItalic(checked);txtEdit->setFont(font);
}// 加粗
void Dialog::do_chkBoxBold(bool checked)
{QFont font = txtEdit->font();font.setBold(checked);txtEdit->setFont(font);
}// 设置颜色
void Dialog::do_setFontColor()
{QPalette plet = txtEdit->palette();if(radioRed->isChecked()){plet.setColor(QPalette::Text, Qt::red);}else if(radioBlack->isChecked()){plet.setColor(QPalette::Text, Qt::black);}else if(radioBlue->isChecked()){plet.setColor(QPalette::Text, Qt::blue);}txtEdit->setPalette(plet);
}Dialog::Dialog(QWidget *parent): QDialog(parent)
{// 竖布局:字体样式chkBoxUnder = new QCheckBox("下划线");chkBoxItalic = new QCheckBox("斜体");chkBoxBold = new QCheckBox("加粗");QHBoxLayout *HLay1 = new QHBoxLayout();HLay1->addWidget(chkBoxUnder);HLay1->addWidget(chkBoxItalic);HLay1->addWidget(chkBoxBold);// 竖布局:字体颜色radioBlack = new QRadioButton("黑色");radioRed = new QRadioButton("红色");radioBlue = new QRadioButton("蓝色");QHBoxLayout *HLay2 = new QHBoxLayout();HLay2->addWidget(radioBlack);HLay2->addWidget(radioRed);HLay2->addWidget(radioBlue);// 编辑框txtEdit = new QPlainTextEdit();txtEdit->setPlainText("hello world \n 手工创建");QFont font = txtEdit->font();font.setPointSize(20);      // 字体大小txtEdit->setFont(font);// 确认、取消、退出btnOk = new QPushButton("确定");btnCancel = new QPushButton("取消");btnClose = new QPushButton("退出");QHBoxLayout *HLay3 = new QHBoxLayout();HLay3->addStretch();HLay3->addWidget(btnOk);HLay3->addWidget(btnCancel);HLay3->addStretch();HLay3->addWidget(btnClose);QVBoxLayout *VLay = new QVBoxLayout();VLay->addLayout(HLay1);VLay->addLayout(HLay2);VLay->addWidget(txtEdit);VLay->addLayout(HLay3);setLayout(VLay);// 信号与槽connect(chkBoxUnder, SIGNAL(clicked(bool)), this, SLOT(do_chkBoxUnder(bool)));connect(chkBoxItalic, SIGNAL(clicked(bool)), this, SLOT(do_chkBoxItalic(bool)));connect(chkBoxBold, SIGNAL(clicked(bool)), this, SLOT(do_chkBoxBold(bool)));connect(radioRed, SIGNAL(clicked()), this, SLOT(do_setFontColor()));connect(radioBlack, SIGNAL(clicked()), this, SLOT(do_setFontColor()));connect(radioBlue, SIGNAL(clicked()), this, SLOT(do_setFontColor()));connect(btnOk, SIGNAL(clicked()), this, SLOT(accept()));connect(btnCancel, SIGNAL(clicked()), this, SLOT(reject()));connect(btnClose, SIGNAL(clicked()), this, SLOT(close()));setWindowTitle("手工打造UI");}Dialog::~Dialog() {}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/411545.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

helm3 中的 Hooks

参考 ## https://zhangfuwei.blog.csdn.net/article/details/125217328 介绍 和 Kubernetes 里面的容器一样,Helm 也提供了 Hook 的机制,允许 chart 开发人员在 release 的生命周期中的某些节点来进行干预,比如我们可以利用 Hooks 来做下⾯的这些事情: 在加载任何其他 …

uniapp + node.js 开发问卷调查小程序

前后端效果图 后端&#xff1a;nodejs 12.8 ; mongoDB 4.0 前端&#xff1a;uniapp 开发工具&#xff1a;HBuilderX 3.99 前端首页代码 index.vue <!-- 源码下载地址 https://pan.baidu.com/s/1AVB71AjEX06wpc4wbcV_tQ?pwdl9zp --><template><view class&q…

容器部署的nextcloud配置onlyoffice时开启密钥

容器部署的nextcloud配置onlyoffice时开启密钥 配置 进入onlyoffice容器 docker exec -it 容器id bash编辑配置vi /etc/onlyoffice/documentserver/local.json enable设置为true&#xff0c;并配置secret 重启容器&#xff0c;并将配置的密钥填入nextcloud密钥页面 docker r…

PLSQL 把多个字段转为json格式

PLSQL 把多个字段转为json格式 sql Select cc.bm, cc.xm, json_arrayagg(cc.hb) jgFrom (Select aa.bm, aa.xm, json_object(aa.ksbh, aa.wjmc) hbFrom (Select 001 bm, 老六 xm, 0001 ksbh, 文具盒 wjmcFrom dual tUnion AllSelect 001 bm, 老六 xm, 0002 ksbh, 毛笔 wjmcFr…

redis原理(二)数据结构

redis可以存储键与5种不同数据结构类型之间的映射&#xff1a; String类型的底层实现只有一种数据结构&#xff0c;也就是动态字符串。而List、Hash、Set、ZSet都由两种底层数据结构实现。通常我们把这四种类型称为集合类型&#xff0c;它们的特点是一个键对应了一个集合的数据…

计算机网络 应用层

文章目录 应用层域名系统 DNS域名系统概述互联网的域名结构域名服务器 文件传送协议FTP 概述FTP 的基本工作原理简单文件传送协议 TFTP 远程终端协议 TELNET万维网 WWW统一资源定位符 URL超文本传送协议 HTTP万维网的信息检索系统 电子邮件电子邮件概述简单邮件传送协议 SMTP邮…

Centos 8 安装 Elasticsearch

简介&#xff1a;CentOS 8是一个基于Red Hat Enterprise Linux&#xff08;RHEL&#xff09;源代码构建的开源操作系统。它是一款稳定、可靠、安全的服务器操作系统&#xff0c;适合用于企业级应用和服务的部署。CentOS 8采用了最新的Linux内核和软件包管理系统&#xff0c;提供…

【UE5】交互式展厅数字博物馆交互是开发实战课程

长久以来&#xff0c;我们总是不断被初学者问到类似这样的问题&#xff1a;如何从头到尾做一个交互式程序开发项目&#xff1f;本套课程尝试对这个问题进行解答。 课程介绍视频如下 【UE5】数字展厅交互式开发全流程 【谁适合学习这门课】 本套课程面向初学者&#xff0c;满足…

从0开始python学习-49.pytest之日志封装和allure封装

目录 日志封装 1. 在pytest.ini中配置日志的格式 2. 生成日志对象--在请求封装中写 3. 把日志写入文件--在请求封装中写 allure封装 1. 在yaml用例中写入需要的模块、接口等内容 2. 在测试用例封装的函数中通过allure.dynamic的方法写入需要的数据 日志封装 1. 在pytest.…

Java 使用 EasyExcel 爬取数据

一、爬取数据的基本思路 分析要爬取数据的来源 1. 查找数据来源&#xff1a;浏览器按 F12 或右键单击“检查”打开开发者工具查看数据获取时的请求地址 2. 查看接口信息&#xff1a;复制请求地址直接到浏览器地址栏输入看能不能取到数据 3. 推荐安装插件&#xff1a;FeHelper&a…

网络安全B模块(笔记详解)- 缓冲区溢出渗透测试

1.从靶机服务器场景FTP服务器中下载文件BO.py,编辑该Python程序文件,使该程序实现对Server6进行缓冲区溢出渗透测试的功能,填写该文件当中空缺的F1字符串,将该字符串作为flag值提交; 2.继续编辑命名为BO.py的Python程序文件,使该程序实现对Server6进行缓冲区溢出渗透测试…

【Linux】文件系统与软硬连接

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;折纸花满衣 &#x1f3e0;个人专栏&#xff1a;题目解析 &#x1f30e;推荐文章&#xff1a;【LeetCode】winter vacation training 目录 &#x1f449;&#x1f3fb; 磁盘HDD的物理存储结构磁盘的逻辑抽象…