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 ...
随机推荐
- Net使用EasyNetQ简化与RabbitMQ的交互
Net使用EasyNetQ简化与RabbitMQ的交互 EasyNetQ是一个为.NET环境设计的RabbitMQ客户端API,旨在简化与RabbitMQ的交互. 关于RabbitMq的更多知识点在: ...
- 6.MySQL性能优化
参数 作用范围 全局:对实例的所有会话起作用 会话级:只对当前会话起作用 set session binlog_rows_query_log_events = on; set global binlo ...
- 【C#】【ffmpeg】外部调用线程执行ffmepg读取返回的信息乱码问题
起因 C#使用FFmpeg获取电脑音视频可以用设备,当返回内容包含中文时,出现乱码问题 解决方案 ffmpeg本身的输出都是使用的错误输出,所以设置的是StandardErrorEncoding,如果 ...
- 【实训总结报告】大二下学期期末Java EE实训报告
站点在微信公众号(萌狼蓝天)回复便可以访问
- git同步远程仓库的所有分支
git clone克隆远程仓库默认是只克隆master分支,当想把远程仓库上的所有的分支都克隆下来的话,有以下几种方法. 使用远程仓库github上的LSMLIB仓库为例.该仓库在github上一共有 ...
- Qt编写手机端视频播放器/推流工具/Onvif工具
一.视频播放器 同时支持多种解码内核,包括qmedia内核(Qt4/Qt5/Qt6).ffmpeg内核(ffmpeg2/ffmpeg3/ffmpeg4/ffmpeg5/ffmpeg6).vlc内核(v ...
- Qt音视频开发46-视频传输UDP版
一.前言 上篇文章写道采用的TCP传输视频,优缺点很明显,优点就是不丢包,缺点就是速度慢,后面换成UDP通信,速度快了很多,少了3次握手,而且在局域网中基本上不丢包,就算偶尔丢包,对于一秒钟25-30 ...
- JVM实战—4.JVM垃圾回收器的原理和调优
大纲 1.JVM的新生代垃圾回收器ParNew如何工作 2.JVM老年代垃圾回收器CMS是如何工作的 3.线上部署系统时如何设置垃圾回收相关参数 4.新生代垃圾回收参数如何优化 5.老年代的垃圾回收参 ...
- 基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v9.0版已发布
关于MobileIMSDK MobileIMSDK 是一套专门为移动端开发的开源IM即时通讯框架,超轻量级.高度提炼,一套API优雅支持 UDP .TCP .WebSocket 三种协议,支持 iOS ...
- 史上最强Dubbo面试28题答案详解
1.Dubbo是什么? Dubbo 是一个分布式.高性能.透明化的 RPC 服务框架,提供服务自动注册.自动发现等高效服务治理方案, 可以和 Spring 框架无缝集成. RPC 指的是远程调用协议, ...