QT5笔记:34. 视口和窗口

例子:
void Widget::paintEvent(QPaintEvent *event)
{
int width = this->width();
int height = this->height();
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing);
int sideLength = qMin(width, height);
QRect rect((width - sideLength) / 2, (height - sideLength) / 2, sideLength, sideLength);
painter.drawRect(rect);
painter.drawText((width - sideLength) / 2, (height - sideLength) / 2, "这黑框是视口大小");
painter.setViewport(rect);
painter.setWindow(-100, -100, 200, 200);//窗口坐标,会改变原点的位置,并且映射绘制区域到设置的区域,大小会随着更改
QLinearGradient linerGradient = QLinearGradient(-100, 0, 100, 100);//线性渐变色
linerGradient.setColorAt(0, Qt::red);
linerGradient.setColorAt(1, Qt::green);
linerGradient.setSpread(QGradient::RepeatSpread);//设置颜色扩散方式
painter.setBrush(linerGradient);
painter.setCompositionMode(QPainter::RasterOp_NotSourceOrNotDestination);//重叠区域颜色的混合模式
for (int i = 0; i < 36; i++) {
painter.drawEllipse(0, 0, 50, 50);
painter.rotate(10);
}
}
界面:
QT5笔记:34. 视口和窗口的更多相关文章
- 学习windows编程 day4 之视口和窗口
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { HDC hdc; PAINTSTRU ...
- SharpGL学习笔记(五) 视口变换
视口变换主是将视景体内投影的物体显示到二维的视口平面上. 在计算机图形学中,它的定义是将经过几何变换, 投影变换和裁剪变换后的物体显示于屏幕指定区域内. 前面我们讨论过的透视投影, 正射投影, 它们都 ...
- 发现视口(窗口)自适应的新大陆!!vw、vh
从事前端已经1年了,一直为背景自适应铺满整个屏幕而苦苦发愁,因为要适配不同的pc显示器,所以高度不能写死,但是写(height:100%)并不能实现,愁死我了~我要不用写好的css框架实现或者自己写j ...
- QT5笔记:关闭应用程序和窗口的函数
23333 QT一坨,求一门面向傻瓜的语言. QT中 quit(),exit()以及close():常用的三个槽 对主程序的退出,可以调用成员函数exit(),同时也可以调用槽quit(),二者此 ...
- QT笔记之实现阴影窗口
方法一: 代码实现 在窗口构造函数中加入:setAttribute(Qt::WA_TranslucentBackground),保证不被绘制上的部分透明 重写void paintEvent(QPain ...
- TCP/IP 笔记 - TCP数据流和窗口管理
TCP流量控制机制通过动态调整窗口大小来控制发送端的操作,确保路由器/接收端消息不会溢出. 交互式TCP连接 交互式TCP连接指该连接需要在客户端和服务器之间传输用户输入信息,如按键操作.短消息.操作 ...
- Linux实战教学笔记34:企业级监控Nagios实践(上)
一,Nagios监控简介 生活中大家应该对监控已司空见惯了,例如:餐馆门前的监控探头,小区里的视频监控,城市道路告诉监控探头等,这些监控的目的大家都很清楚,无须多说.那么,企业工作中为什么要部署监控系 ...
- C语言实例解析精粹学习笔记——34(用“结构”统计学生成绩)
实例34: 设学生信息包括学号.姓名和五门功课的成绩,要求编写输入输出学生信息的函数.在输入学生信息后,以学生成绩的总分从高到低顺序输出学生信息. 思路: 程序引入一个结构数组依次存储输入的学生信息, ...
- [原创]java WEB学习笔记34:Session 案例 之 解决表单重复提交
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- Python3+Selenium3+webdriver学习笔记6(多窗口切换处理)
#!/usr/bin/env python# -*- coding:utf-8 -*- from selenium import webdriverfrom selenium.webdriver.co ...
随机推荐
- HarmonyOS Next 入门实战 - 文字转拼音,文字转语音
文字转拼音 安装 pinyin4js 三方库 ohpm install @ohos/pinyin4js pinyin4js 提供了以下接口: ● 文字转拼音(带声调和不带声调) ● 文字转拼音首字母 ...
- docker-compose开机自启动设置
vi /etc/rc.d/rc.local /usr/local/bin/docker-compose -f /home/seafile/docker-compose.yml up -d 给rc.lo ...
- Python 和 Podman
1. Windows 10 上安装 Python 开始在 Windows 上使用 Python(初学者) 2. 使用 pip Python 的 Microsoft Store 安装包括 pip(标准包 ...
- manim边学边做--旋转
本篇介绍Manim中的两个旋转类的动画,名称差不多,分别是Rotate和Rotating. Rotate类主要用于对图形对象进行指定角度.围绕特定点的精确旋转,适用于几何图形演示.物理模拟和机械运动展 ...
- 常用 NoSQL 比较
Q: 请根据 CAP 实现程度,分布式实现方式,数据结构,查询方式,存储引擎等比较 mongodb, redis, cassandra, scylladb, dragonflydb, TiKV, co ...
- Linux 中的内存使用率计算方式
背景介绍 在工作中处理问题的时候,遇到一个问题,自己根据 top 命令时查看到的 used 和 total 计算出来的内存使用率已经达到 90% 以上了,但是系统自带的监控软件计算出来的使用率往往没有 ...
- Qt开发经验小技巧261-265
代码中判断当前Qt库是32位还是64位,用QSysInfo::WordSize=32/64. QTreeView控件设置左侧branch图标大小,无法通过qss设置,万能大法查看源码得知控制宽度最后取 ...
- Qt编写地图综合应用21-路径规划
一.前言 近期重新将这个地图综合应用进行大幅度的改进更新升级,包括使用示例也做了非常多的改进和调整,其中就包括路径规划功能,之前只是调用了百度地图的JS交互接口,根据起始点坐标经纬度和结束点坐标经纬度 ...
- Qt音视频开发6-ffmpeg解码处理
一.前言 采用ffmpeg解码,是所有视频监控开发人员必备的技能,绕不过去的一个玩意,甚至可以说是所有音视频开发人员的必备技能.FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开 ...
- [转]关于opencv4.0中“未定义标识符cvNamedWindow”的解决方法
这个问题困扰了很久,在网上找了很多方法,但是都没用, 比如:"在代码开头加入头文件#include <opencv2/highgui/highgui_c.h>"之类的方 ...