Qt实践-基于C++的UI设计基础
学习网址:http://c.biancheng.net/view/1824.html
我的代码:
头文件qwdlgmanual.h:
#ifndef QWDLGMANUAL_H
#define QWDLGMANUAL_H #include <QDialog>
#include <QPushButton>
#include <QRadioButton>
#include <QCheckBox>
#include <QPlainTextEdit>
#include <QBoxLayout> class QWDlgManual : public QDialog
{
Q_OBJECT public:
QWDlgManual(QWidget *parent = nullptr);
~QWDlgManual(); private slots:
void on_setUnderline(bool checked);
void on_setBold(bool checked);
void on_setItalic(bool checked);
void ColorSet(); private:
QRadioButton* rbtnred;
QRadioButton* rbtnblue;
QRadioButton* rbtnblack;
QCheckBox* ckboxBold;
QCheckBox* ckboxItalic;
QCheckBox* ckboxUnder;
QPushButton* btnClose;
QPushButton* btnOK;
QPlainTextEdit* textEdit;
void initialSignalSlots();
void initialUI();
};
#endif // QWDLGMANUAL_H
qwdlgmanual.cpp:
#include "qwdlgmanual.h" QWDlgManual::QWDlgManual(QWidget *parent)
: QDialog(parent)
{
initialUI();
initialSignalSlots();
setWindowTitle("Form");
} QWDlgManual::~QWDlgManual()
{
} void QWDlgManual::on_setUnderline(bool checked)
{
QFont font=textEdit->font();
font.setUnderline(checked);
textEdit->setFont(font);
} void QWDlgManual::on_setBold(bool checked)
{
QFont font=textEdit->font();
font.setBold(checked);
textEdit->setFont(font);
} void QWDlgManual::on_setItalic(bool checked)
{
QFont font=textEdit->font();
font.setItalic(checked);
textEdit->setFont(font);
} void QWDlgManual::ColorSet()
{
QPalette palte=textEdit->palette();
if(rbtnred->isChecked())
palte.setColor(QPalette::Text,Qt::red);
else if(rbtnblue->isChecked())
palte.setColor(QPalette::Text,Qt::blue);
else if(rbtnblack->isChecked())
palte.setColor(QPalette::Text,Qt::black);
textEdit->setPalette(palte);
} void QWDlgManual::initialSignalSlots()
{
connect(rbtnred,SIGNAL(clicked()),this,SLOT(ColorSet()));
connect(rbtnblue,SIGNAL(clicked()),this,SLOT(ColorSet()));
connect(rbtnblack,SIGNAL(clicked()),this,SLOT(ColorSet()));
//radiobutton与槽函数的链接
connect(ckboxBold,SIGNAL(clicked(bool)),this,SLOT(on_setBold(bool)));
connect(ckboxUnder,SIGNAL(clicked(bool)),this,SLOT(on_setUnderline(bool)));
connect(ckboxItalic,SIGNAL(clicked(bool)),this,SLOT(on_setItalic(bool)));
//checkbutton与槽函数的链接
connect(btnOK,SIGNAL(clicked()),this,SLOT(accept()));
connect(btnClose,SIGNAL(clicked()),this,SLOT(close()));
//pushbutton与槽函数的链接
} void QWDlgManual::initialUI()
{
ckboxBold = new QCheckBox(tr("Bold"));
ckboxItalic = new QCheckBox(tr("Itlic"));
ckboxUnder = new QCheckBox(tr("Underline"));
QHBoxLayout* Hey=new QHBoxLayout;
Hey->addWidget(ckboxBold);
Hey->addWidget(ckboxItalic);
Hey->addWidget(ckboxUnder);
//增加更改字体的CheckBox
rbtnred = new QRadioButton(tr("Red"));
rbtnblue = new QRadioButton(tr("Blue"));
rbtnblack = new QRadioButton(tr("Black"));
QHBoxLayout* Hsy=new QHBoxLayout;
Hsy->addWidget(rbtnred);
Hsy->addWidget(rbtnblue);
Hsy->addWidget(rbtnblack);
//增加更改颜色的RadioButton
btnOK = new QPushButton(tr("确定"));
btnClose = new QPushButton(tr("关闭"));
QHBoxLayout* Hty=new QHBoxLayout;
Hty->addStretch();
Hty->addWidget(btnOK);
Hty->addWidget(btnClose);
//添加确认与退出按键
textEdit = new QPlainTextEdit;
textEdit->setPlainText("Hello World!\nThis is my demo.");
QFont font = textEdit->font();
font.setPointSize();
textEdit->setFont(font);
//设置文本格式
QVBoxLayout* Vey=new QVBoxLayout;
Vey->addLayout(Hey);
Vey->addLayout(Hsy);
Vey->addWidget(textEdit);
Vey->addLayout(Hty);
//垂直风格的页面总布局
setLayout(Vey);//设置为窗体的主布局
}
主文件main:
#include "qwdlgmanual.h" #include <QApplication> int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWDlgManual w;
w.show();
return a.exec();
}
Qt实践-基于C++的UI设计基础的更多相关文章
- iOS10 UI设计基础教程
iOS10 UI设计基础教程 介绍:本教程针对iOS初级开发人员,基于iOS 10系统,使用Swift 3.0语言讲解如何进行UI设计.本教程内容涵盖UI基础构成.UI元素.自动布局.自适应UI.UI ...
- 【译】UI设计基础(UI Design Basics)--导航(Navigation)(六)
[译]UI设计基础(UI Design Basics)--导航(Navigation)(六)
- 《软件测试自动化之道》读书笔记 之 基于反射的UI测试
<软件测试自动化之道>读书笔记 之 基于反射的UI测试 2014-09-24 测试自动化程序的任务待测程序测试程序 启动待测程序 设置窗体的属性 获取窗体的属性 设置控件的属性 ...
- 《软件测试自动化之道》读书笔记 之 基于Windows的UI测试
<软件测试自动化之道>读书笔记 之 基于Windows的UI测试 2014-09-25 测试自动化程序的任务待测程序测试程序 启动待测程序 获得待测程序主窗体的句柄 获得有名字控件的 ...
- 前端基于jquery的UI框架
正在做的一个项目选择jquery作为前端js核心库.然后就想选一个基于jquery的ui库,然后悲催的事情发生了. 至于为什么使用jquery,一是因为不想为授权费用,而又不想引起可能法律纠纷:另一方 ...
- 基于jquery的ui选择之路
选定: 主框架:jqueryUi tree:ztree grid:jqGrid layout:jquery.layout 原由: 还有其他demo,ajax实现等参看连接: 正在做的一个项目选择jqu ...
- 基于Vue的Ui框架
基于Vue的Ui框架 饿了么公司基于vue开的的vue的Ui组件库 Element Ui 基于vue pc端的UI框架 http://element.eleme.io/ MintUi 基于vue 移动 ...
- 软件测试自动化之- 基于反射的UI自动化测试框架 - UI Automation Test Framework
测试自动化程序的任务 基于反射的ui测试自动化程序,要完成的6项任务: 通过某种方式从测试套件程序中运行待测程序(AUT: Applicaton Under Test),以便于两个程序之间进行通信 操 ...
- 用qt creator创建可继承ui类
https://jingyan.baidu.com/article/5d368d1efa2dd73f60c05786.html 用qt creator创建可继承ui类 听语音 | 浏览:1657 | ...
随机推荐
- C语言出现 "initializer element is not constant" 错误的原因
当在全局变量定义一个指针变量,并动态分配内存后,发现竟然编译不过去,并提示 ""initializer element is not constant"": c ...
- 使用Apache服务器实现Nginx反向代理
实验环境:centos7 注:因为本次实验在同一台服务器上,Apache与Nginx同为80端口,所以改Apache端口为60 1 配置Nginx服务器: 编辑Nginx配置文件,写入以下内容 loc ...
- 自学笔记系列:《Python学习手册 第五版》 -写在开始之前
今年双十一,在当当网上买了这本书,很厚很厚的一本书,大概有将近1700页左右,的确是一个“大工程”, 关于这本书的学习,我想采用一种博客的方式进行,既是写给自己,也想分享给每一个对Python学习感兴 ...
- Visual Studio 2015 配置 Python 环境
Visual Studio 2015可以在安装时选择安装Python环境,首次使用VS2015执行python时需要配置环境变量: 配置VS2015的环境前需要先下载Python并安装: https: ...
- python学习(3)关于交互输入及字符串拼接
input是输入语句,用于人机交互. input() 函数接受一个标准输入数据,返回为 string 类型.如果需要输入的未数字,则需要额外定义. sex=input(“Sex:”) #这里会默认为S ...
- Html / XHtml 解析 - Parsing Html and XHtml
Html / XHtml 解析 - Parsing Html and XHtml HTMLParser 模块 通过 HTMLParser 模块来解析 html 文件通常的做法是, 建立一个 HTMLP ...
- OSPF笔记——LSA及其字段,及其作用
Link State ID Link State ID remains at 32 bits in length, Link State ID has shed any addressing sema ...
- [MacOS-Memcached]安装
查看memcached信息 $ brew info memcached memcached: stable 1.5.22 (bottled), HEAD High performance, distr ...
- Python学习小记(2)---[list, iterator, and, or, zip, dict.keys]
1.List行为 可以用 alist[:] 相当于 alist.copy() ,可以创建一个 alist 的 shallo copy,但是直接对 alist[:] 操作却会直接操作 alist 对象 ...
- pikachu-不安全的文件下载和上传
一.文件下载漏洞 1.1 概述 很多网站都会提供文件下载的功能,即用户可以通过点击下载链接,下载到链接所对应的文件.但是,如果文件下载功能设计不当,则可能导致攻击者可以通过构造文件路径,从而获 ...