QT绘制半透明窗体(改写paintEvent,超级简单)

在派生类中重载QDialog的void paintEvent(QPaintEvent *)事件,在这个函数中加入以下代码

QPainter painter(this);
    QLinearGradient grad(0, 0, width(), height());
    QGradientStops gs;
    
    gs << QGradientStop(0.0, QColor(0, 0, 0 , 100))
        << QGradientStop(0.5, QColor(0, 0, 0, 100))
        << QGradientStop(1.0, QColor(0, 0, 0, 100));
    grad.setStops(gs);
    painter.fillRect(0, 0, width(), height(), grad);

http://blog.csdn.net/itjobtxq/article/details/8766721

时间: 2024-10-13 16:08:03

QT绘制半透明窗体(改写paintEvent,超级简单)的相关文章

Qt绘制异形窗体

异形窗体即不规则窗体,一般采用png图片,一般绘制异形窗体分两步: 1.设置遮罩区 2.绘制图片   使用png图片的透明部分作为遮罩区,然后绘制图片,这样我们就看到一个只绘制了非透明部分的图形,废话少说,以实现绘制一只蝴蝶(蝴蝶为半透明)为例,效果如下: 头文件: 1: #include <QWidget> 2: class TransDialog : public QWidget 3: { 4: Q_OBJECT 5: public: 6: explicit TransDialog(QWi

Qt自绘窗体

也许大部分情况下我们不需要自己手动绘制一个窗体,大部分可以通过图片来实现,本篇仅以学习的态度来初略的理解Qt界面的自定义绘制功能.   本篇将实现以下功能: 1.绘制一个椭圆形 2.支持界面的移动操作 3.Esc退出 头文件: 1: #include <QDialog> 2: 3: class DrawDialog : public QDialog 4: { 5: Q_OBJECT 6: 7: public: 8: explicit DrawDialog(QWidget *parent = 0

轻轻松松教你写日志-超级简单

最近在做一个项目,涉及到很多的服务,一步步调试相当麻烦,要在自己电脑上发布很多服务,又要全部开启.很费时间,出现问题,怎么解决最快呢?直接写日志,一步定位哪里出了错. Log4Net库是一个帮助程序员将日志信息输出到各种目标(控制台.文件 数据库等)的工具. Log4Net,相信哪个程序员都用过,但是可能是人家配置好了自己拿过来直接用,所以让自己写还是有点困难,听起来很高大上的样子,其实真的很简单.以前听别人讲,迷迷糊糊,知道那么回事,就是个写日志的.但是真正会用还是在项目中自己真正的实践. 下

QT绘制系统简介

#3个类:QPainter,QPainterDevice 和 QPaintEngine 三个类 #qpainter用于执行绘制操作 #QPainterDevice是一个二维空间抽象,允许qpainter在其上面进行绘制,也就是qpainter工作空间 #QPaintEngine 提供了画笔(qpainter)在不同设备上进行绘制统一接口,QPaintEngine类应用于QPainter和QPaintDevice 之间,如果需要自定义一个设备时 #则不需要关心QPaintEngine 这个类的QP

qt绘制设备

# -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' from PyQt4.QtGui import  * from PyQt4.Qt import * from PyQt4 import QtGui, QtCore from PyQt4.QtCore import * import sys #说明:绘图设备是继承 QPainterDevice 的类. QPaintDevice 就是能够进行绘制的类,也就是说, # Q

c#录制屏幕 超级简单!

使用Aforge.net对屏幕进行截图,并将每一张BITMAP写到AVI文件中.超级简单! AFORGE.NET的ScreenCaptureStream性能有限,目前测试基本能达到10帧左右. 设置AVIWriter的FrameRate为8帧,但是播放起来像快进一样,目前还没有找到原因.暂时采取一个New Frame到达时,多写几次的方法进行规避. 有知道如何处理的请联系我. 详细代码如下: public partial class Form1 : Form { Screen c = Scree

QT绘制饼图

QT版本:QT5.6.1 QT绘制饼图,出问题的代码如下 void DrawPieDialog::paintEvent(QPaintEvent *event) { float startAngle=0; float spanAngle=( (qreal) (sell) / (qreal)(sell+last) ) *360; QPoint startPt(30,30); //圆心 QRect rect(startPt.x(), startPt.y(), 200, 200); QPainter p

Qt无边框窗体-最大化时支持拖拽还原

目录 一.概述 二.效果展示 三.demo制作 1.设计窗体 2.双击放大 四.拖拽 五.相关文章 原文链接:Markdown模板 一.概述 用Qt进行开发界面时,既想要实现友好的用户交互又想界面漂亮,那么自定义界面就必不可少.其中有一个操作就是是我们每一个Qter开发者都要会的,而且是经常进行的. Qt::FramelessWindowHint这个属性想必大家都使用过,有些同学可能对这个属性很了解,也用的是炉火纯青,今天我们也来说说这个属性. 关于这个无边框属性网上也有一些文章,有些谈论的是b

JS基础(超级简单)

1     JS基础(超级简单) 1.1 数据类型 1.1.1   基本类型: 1)        Number:特别注意:NaN的检测方法:Nan!=NaN;或者使用isNaN方法 2)        string 3)        boolean 4)        null 5)        undefined 1.1.2   复杂类型 object:date,array,function 1.2 变量 var 变量名=值 变量的作用域:1.全局:以页面为单位.2局部:以函数为单位.