Qt 的一些心得(背景设置,圆角,半透明)

2023-11-13

一. 背景刷成黑色,前景色设为白色。 方法一、paltette方式,经测试,该方法不会影响到其他控件,推荐使用 QPalette bgpal = palette();

bgpal.setColor (QPalette::Background, QColor (0, 0 , 0, 255));

//bgpal.setColor (QPalette::Background, Qt::transparent);

bgpal.setColor (QPalette::Foreground, QColor (255,255,255,255)); setPalette (bgpal);

方法二、stylesheet方式 影响子控件的方法是:

setStyleSheet ("background-color: #000000;color: #ffffff;");

不影响子控件的方法是:

setStyleSheet ("venus--TitleBar {background-color: #000000;color: #ffffff;}");

二. 圆角控件 用stylesheet方式

setStyleSheet ("border:2px groove gray;border-radius:10px;padding:2px 4px;");

三. 圆角窗口 RoundRectWin::RoundRectWin() { QPalette p = palette(); QPixmap img("roundrect.png");

    QBitmap mask("roundrect_mask.png");

    p.setBrush(QPalette::Window, QBrush(img));

    setPalette(p);

    setMask(mask);

    resize(img.size());

    //setWindowFlags(Qt::FramelessWindowHint);//这句会去掉标题栏 } 注意:mask的图多余部分设为白色

四. 半透明窗口

1.窗口整体透明,但是窗体上的控件不透明。 通过设置窗体的背景色来实现,将背景色设置为全透。 QPalette pal = palette();

pal.setColor(QPalette::Background, QColor(0x00,0xff,0x00,0x00)); setPalette(pal); 试验效果:

窗体标题栏不透明;

窗体客户区上的控件不透明,QLabel控件只是字显示,控件背景色透明; 窗体客户区完全透明。

另外从网上看到的方法: setAttribute(Qt::WA_TranslucentBackground, true); 试验的结果是类似于上面的方法,但有时候窗体会被一些杂色斑点填充,未找到原因。

2.窗口及其上面的控件都半透明:

setWindowOpacity(0.7)

试验效果:窗口及控件都半透明。注意不能够setWindowFlags(Qt::FramelessWindowHint);要不就不起作用

3.窗口整体不透明,局部透明:

在Paint事件中使用Clear模式绘图。

void TestWindow::paintEvent( QPaintEvent* )

{ QPainter p(this);

               p.setCompositionMode( QPainter::CompositionMode_Clear ); p.fillRect( 10, 10, 300, 300, Qt::SolidPattern ); }

试验效果:绘制区域全透明。如果绘制区域有控件不会影响控件。

以上实验均是基于Directfb的Qte测试。在Linux下及Windows下效果会略有不同。 比如在Windows下第3个实验,绘制区域就是一个黑窟窿,如果Window本身半透,则是Window下面的内容加上半透效果,不是全透明效果。

五. 控制QPixmap的alpha

QPixmap temp(pixmapTop.size()); temp.fill(Qt::transparent);

    QPainter p(&temp);

    p.setCompositionMode(QPainter::CompositionMode_Source);

    p.drawPixmap(0, 0, pixmapTop);

    p.setCompositionMode(QPainter::CompositionMode_DestinationIn);

    p.fillRect(temp.rect(), QColor(0, 0, 0, alpha)); //--lable显示前景图片 ui->label->setScaledContents(true);

    ui->label->setPixmap(temp);

六. layout 的边界 layout->setMargin (0);

本文来自CSDN博客:http://blog.csdn.net/lpt19832003/archive/2010/03/15/5381095.aspx


终于把qt半透明搞定了

QFrame *frame = new QFrame();
QPixmap grabPixmap = QPixmap::grabWindow( frame->winId(), 20, 0, 100, 100 );
frame->setGeometry( 20, 20, 100, 100 );
frame->hide();

QPixmap pixmap = Resource::loadPixmap( "qpelogo" );

QImage image = pixmap.convertToImage();
//image.convertDepth( 32 );
image.setAlphaBuffer( true );
QImage bgImage = grabPixmap.convertToImage();
//bgImage.convertDepth( 32 );
    bgImage.setAlphaBuffer( true );

    double k = 0.5;

QRgb *rgbpos1 = image.colorTable();
QRgb *rgbpos2 = bgImage.colorTable();

for( int y = 0; y < 80; y++ )
   for( int x = 0; x < 80; x++ )
    {

#if 1
       uint rgb1 = image.pixel( x, y );
     uint rgb2 = bgImage.pixel( x, y );
     unsigned int red = qRed(rgb1);
     unsigned int green = qGreen(rgb1);
     unsigned int blue = qBlue(rgb1);
     unsigned int bgred = qRed(rgb2);
     unsigned int bggreen = qGreen(rgb2);
     unsigned int bgblue = qBlue(rgb2);

     red = k * red + ( 1 - k ) * bgred;
     green = k * green + ( 1 - k ) * bggreen;
     blue = k * blue + ( 1 - k ) * bgblue;
     //red = red << 4;
     //green = green << 4;
     //blue = blue << 4;
#endif
     //color = QColor( red, green, blue );
     //unsigned int myrgb = color.rgb();
     //image.setPixel( x, y, myrgb );
     uint *p = (uint *)image.scanLine(y) + x;
                *p = qRgb( red, green, blue );
    
    }


qWarning("%d %d", image.depth(), bgImage.depth());

grabPixmap.convertFromImage( image );

frame->setBackgroundPixmap( grabPixmap );
frame->show();
#endif

zz: http://hi.baidu.com/sszllx/blog/item/ab833a59ea98622f2934f001.html


Qt实现嵌入桌面的半透明窗口

这儿用上了前面一文提到的函数findDesktopIconWnd()。
见: http://mypyg.blog.51cto.com/820446/263349

一、将Qt窗口嵌入到桌面中。
声明一个最简单的类:

Qt实现嵌入桌面的半透明窗口 class Dialog :  public QDialog
Qt实现嵌入桌面的半透明窗口{
Qt实现嵌入桌面的半透明窗口  Q_OBJECT
Qt实现嵌入桌面的半透明窗口
public:
Qt实现嵌入桌面的半透明窗口  Dialog(QWidget *parent = 0);
Qt实现嵌入桌面的半透明窗口  ~Dialog();
Qt实现嵌入桌面的半透明窗口}
函数实现:
Qt实现嵌入桌面的半透明窗口Dialog::Dialog(QWidget *parent)  : QDialog(parent)
Qt实现嵌入桌面的半透明窗口{
Qt实现嵌入桌面的半透明窗口  //创建个LineEdit用来测试焦点
Qt实现嵌入桌面的半透明窗口  QLineEdit* le =  new QLineEdit( this);
Qt实现嵌入桌面的半透明窗口}
Qt实现嵌入桌面的半透明窗口
Dialog::~Dialog()
Qt实现嵌入桌面的半透明窗口{
Qt实现嵌入桌面的半透明窗口}
主函数:
Qt实现嵌入桌面的半透明窗口 int main( int argc,  char *argv[])
Qt实现嵌入桌面的半透明窗口{
Qt实现嵌入桌面的半透明窗口  QApplication a(argc, argv);
Qt实现嵌入桌面的半透明窗口  Dialog w;
Qt实现嵌入桌面的半透明窗口
HWND desktopHwnd = findDesktopIconWnd();
Qt实现嵌入桌面的半透明窗口  if(desktopHwnd) SetParent(w.winId(), desktopHwnd);
Qt实现嵌入桌面的半透明窗口
w.show();
Qt实现嵌入桌面的半透明窗口  return a.exec();
Qt实现嵌入桌面的半透明窗口}
运行效果:
转载: qt 的一些心得(背景设置,圆角,半透明) - 楚江北 - 矮子爬梯
有个窗口嵌入了桌面。按win+D组合键可以看到此窗口在桌面上。

二、让窗口全透明:
2.1最容易想到的就是setWindowOpacity()函数了。
w.setWindowOpacity(0.5),运行:结果杯具了,此函数完全无效,因为其父窗口特殊,这个函数内部使用的系统窗口标志不被支持。
2.2
w.setAttribute(Qt::WA_TranslucentBackground, true);
运行效果:
转载: qt 的一些心得(背景设置,圆角,半透明) - 楚江北 - 矮子爬梯
全透明ok。如果其父窗口为空的话,透明的地方会成为黑块。

三、让窗口半透明
3.1w.setAttribute(Qt::WA_TranslucentBackground, true) + 背景调色板
运行效果仍然是全透明,因为TranslucentBackground为true,根本不画背景。
3.2单纯的背景调色板:
Qt实现嵌入桌面的半透明窗口QPalette pal = w.palette();
Qt实现嵌入桌面的半透明窗口  pal.setColor(QPalette::Background, QColor(100,100,100,50));
Qt实现嵌入桌面的半透明窗口  w.setPalette(pal);
Qt实现嵌入桌面的半透明窗口  w.setAutoFillBackground( true);
运行效果出现了半透明:
转载: qt 的一些心得(背景设置,圆角,半透明) - 楚江北 - 矮子爬梯
但是还没大功告成,不停点击桌面,再点击这个窗口,会发现这个窗口越来越不透明,直至完全不透明了。不知道是不是qt的bug。
3.3转战paintEvent()
Qt实现嵌入桌面的半透明窗口 protected:
Qt实现嵌入桌面的半透明窗口  void paintEvent(QPaintEvent *);
Qt实现嵌入桌面的半透明窗口 void Dialog::paintEvent(QPaintEvent *e)
Qt实现嵌入桌面的半透明窗口{
Qt实现嵌入桌面的半透明窗口  QPainter p( this);
Qt实现嵌入桌面的半透明窗口  p.fillRect(rect(), QColor(0,0xff,0,30));
Qt实现嵌入桌面的半透明窗口}
用一个带有alpha值的颜色填充背景,运行效果发现颜色确实有alpha值,但是桌面的内容透不过来。
3.4setAttribute(Qt::WA_TranslucentBackground, true) + paintEvent()
运行效果:
转载: qt 的一些心得(背景设置,圆角,半透明) - 楚江北 - 矮子爬梯
得到了设想中的效果。
最终的主函数代码:
Qt实现嵌入桌面的半透明窗口 int main( int argc,  char *argv[])
Qt实现嵌入桌面的半透明窗口{
Qt实现嵌入桌面的半透明窗口  QApplication a(argc, argv);
Qt实现嵌入桌面的半透明窗口  Dialog w;
Qt实现嵌入桌面的半透明窗口
HWND desktopHwnd = findDesktopIconWnd();
Qt实现嵌入桌面的半透明窗口  if(desktopHwnd) SetParent(w.winId(), desktopHwnd);
Qt实现嵌入桌面的半透明窗口
w.setAttribute(Qt::WA_TranslucentBackground,  true);
Qt实现嵌入桌面的半透明窗口
w.show();
Qt实现嵌入桌面的半透明窗口  return a.exec();
Qt实现嵌入桌面的半透明窗口}
最终的dialog实现代码:
Qt实现嵌入桌面的半透明窗口Dialog::Dialog(QWidget *parent)  : QWidget(parent)
Qt实现嵌入桌面的半透明窗口{
Qt实现嵌入桌面的半透明窗口  //创建个LineEdit用来测试焦点
Qt实现嵌入桌面的半透明窗口  QLineEdit* le =  new QLineEdit( this);
Qt实现嵌入桌面的半透明窗口}
Qt实现嵌入桌面的半透明窗口
Dialog::~Dialog()
Qt实现嵌入桌面的半透明窗口{
Qt实现嵌入桌面的半透明窗口}
Qt实现嵌入桌面的半透明窗口
void Dialog::paintEvent(QPaintEvent *e)
Qt实现嵌入桌面的半透明窗口{
Qt实现嵌入桌面的半透明窗口  QPainter p( this);
Qt实现嵌入桌面的半透明窗口  p.fillRect(rect(), QColor(0,0xff,0,30));
Qt实现嵌入桌面的半透明窗口}


PS:
经测试此代码在XP运行不正常。窗口成为黑色背景块。只能是颜色半透明了。
还有就是图标会被盖住。

在QT中自绘控件的方法说明 收藏 
首先给出在QT中进行标题栏自绘的方法(两个网址给出了方法和参考代码)

litterflybug的专栏 ::http://blog.csdn.net/litterflybug/archive/2009/05/07/4157482.aspx

QT官方FAQ: http://www.qtsoftware.com/developer/faqs/faq.2007-04-25.2011048382

其次,做一点关于在windows平台下将顶级窗口透明化的说明

1. 在4.5版本以前,要实现Top level窗口的透明化,需要使用setMask方法,该方法有两个重载,一个是QRegion定义一个区域表明这一区域是要被绘制的区域,在该区域以外 的地方是不需要绘制的.第二个重载版本是需要一个QBitmap,这个QBitmap只需要一张单色位图就可以了(另外,一张带有透明效果的PNG图片被 读入QPixmap中以后,可以使用函数mask()返回一张与原图对应的单色位图,这很方便实际使用),白色部分表示是不透明要被绘制的区域,黑色部分 表示该区域不应该被绘制(能实现透明的效果).

2.4.5版本发行以后,可以 设置窗口属性Qt::WA_TranslucentBackground来设定该窗口透明显示,但是有一个问题,就是如果该窗口是个top level窗口,就会有标题栏(title bar), 在windows平台下,如果不把这个标题栏去掉(设置Qt::FramelessWindowHint 标志位就会去掉标题栏),那么将不会是透明效果,而是背景为全黑(我的实验结果是这样)


本文部分来自CSDN博客,转载请标明出处:http://blog.csdn.net/dotboy/archive/2009/06/22/4287805.aspx


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt 的一些心得(背景设置,圆角,半透明) 的相关文章

  • 将 UTC 格式的 QDateTime 转换为本地系统时间

    我从这样的字符串构造 QDateTime QDateTime date QDateTime fromString 2010 10 25T10 28 58 570Z yyyy MM ddTHH mm ss zzzZ 我知道date是 UTC
  • QWidget::showMinimized() 不起作用

    在 Ubuntu 13 04 上 如果使用QWidget showMinimized 为了最小化窗口 我发现通过单击系统任务栏上的应用程序图标恢复它后 调用QWidget showMinimized 无法工作 connect minimum
  • Apache 子进程已退出,状态为 255

    经过大量的搜索 尝试 修复 等待和哭泣 在我放弃之前 我想为这个错误抓住最后的机会 我们正在奔跑Microsoft Windows Server 2012 Apache 2 4 6 Win64 OpenSSL 1 0 1e PHP 5 5
  • 在 Windows 下克隆 git repo 时,出现“错误:无法创建文件 <文件>...(是目录)”

    Z gt git clone git github com kennethreitz httpbin git Cloning into httpbin remote Counting objects 1073 done remote Com
  • MD 和 MKDIR 批处理命令有什么区别?

    这两个命令都会创建文件夹 我read http www computerhope com mdhlp htmMKDIR 甚至可以创建子文件夹 这只是区别吗 为什么有两个命令做同样的事情 我应该使用哪一个 除了 npocmaka 的answe
  • C# 中的 Unix 套接字

    我正在尝试使用 Mono 的 UnixEndPoint 但在使用它之前就失败了 我在 64 位 Windows 7 系统上运行 Xamarind net 4 5 下面是一些代码 证明单一组合不起作用 foreach SocketType s
  • 扩展 TabViewStyle styleData

    我目前正在尝试找到一种更好的方法来执行此操作 将图标添加到选项卡 现在 我正在放弃 styleData title 以包含图标源 但如果能够扩展 styleData 就更好了 这样我就可以包含其他自定义属性 这是我当前的黑客 Tab tit
  • 面向 Delphi 开发人员的 Qt

    有人知道为 Delphi C Builder VCL 开发人员解释 Qt 的书籍或教程吗 对于具有该背景的开发人员来说 学习 Qt 的最佳方法是什么 我对如何使用 Qt 完成我知道如何在 Delphi 中完成的事情特别感兴趣 例如 Qt 相
  • 如何确保密钥是在 TPM 内部创建的?

    我需要 在客户端计算机上运行 exe 这将在 TPM 中创建密钥对 然后我将使用 TPM 生成的密钥对的公钥部分创建 CSR 我关心的是如何确保密钥是在 TPM 内部创建的 而不是由欺骗的 TPM 创建的 这将使私钥能够被迁移和复制 我听说
  • 如何使用 ClangCodeModel 插件在 QtCreator 中设置 C++ 标准?

    抱歉 如果这是一个愚蠢的问题 但我已经尝试了几乎所有的方法 现在正在用头撞墙 问题是 带有 Clang 代码模型插件的 QtCreator 4 8 0 beta for Windows 解析我的项目 为 C 98 而实际上它是 C 17 但
  • 如何在Windows命令行中执行for循环?

    我想知道这是否可能 我不熟悉使用 Windows 命令行 但我必须将它用于我正在处理的项目 我有许多文件 我需要为每个文件执行一个功能 我习惯使用 python 但显然这有点不同 所以我希望得到一些帮助 基本上 我需要 for 循环来迭代文
  • fopen_s 怎么会比 fopen 更安全呢?

    我正在处理遗留代码Windows平台 当我编译代码时VS2013 它给出以下警告 错误 C4996 fopen 该函数或变量可能不安全 考虑使用fopen s反而 要禁用弃用 请使用 CRT SECURE NO WARNINGS 详情请参见
  • 是否有可能劫持标准输出

    我正在尝试使用 C 重定向 Windows XP 上已运行进程的标准输出 我知道如果我自己生成进程 我可以做到这一点 但对于这个应用程序 我更喜欢一个 监听器 我可以附加到另一个进程 这在纯 Net 中可能吗 如果不可能 在 Win32 中
  • 如何在 Windows 上为 GeoDjango 安装 GEOS

    我正在使用 Python 2 5 Django 1 2 MySQL 和 Apache 启动一个 GeoDjango 项目 该项目将上传到 Linux 服务器 但开发将在 Windows 上进行 问题是我无法通过安装 GEOS 这是怎么完成的
  • 如何告诉 IntelliJ 使用 Java 1.6 JDK 启动 gradle?

    一个简单的问题 即使经过几个小时的尝试和搜索 我也无法弄清楚 我安装了 Java 6 和 7 如何告诉 IntelliJ 使用 JDK 版本 1 6 启动 Gradle 构建 无论我做什么 IntelliJ 都会以以下方式开始我的 grad
  • 选择合适的IDE

    您会推荐使用以下哪种 IDE 语言来在 Windows 下开发涉及识别手势并与操作系统交互的项目 我将使用 OpenCV 库来执行图像处理任务 之后 我将使用 win32 API 或 NET 框架与操作系统交互 具体取决于您建议的工具 性能
  • 包含 Qt 标头的正确方法是什么?

    到目前为止我知道几种方法 includeQt 类 include
  • 使用 WriteConsoleOutput 用 c# 编写 Unicode

    我正在尝试使用WriteConsoleOutput来自 kernel32 dll 的函数 但是我无法正确显示 unicode 字符 它们总是显示为错误的字符 我尝试过使用 Console OutputEncoding System Text
  • 命令行字符串的最大长度

    在Windows中 命令行字符串的最大长度是多少 意思是如果我指定一个在命令行上接受参数的程序 例如abc exe name abc 我编写的一个简单的控制台应用程序通过命令行获取参数 我想知道最大允许数量是多少 来自微软文档 命令提示符
  • 在 Android 应用程序中启动应用程序时仅显示一次版本信息

    我想显示一个带有 确定 按钮的简单信息对话框 介绍此版本中的新增内容 但它应该仅在第一次启动时显示 实施这个的最好方法是什么 我会 并且已经 使用带有布尔值或 int 值的 SharedPreferences 只需检查最后一个版本是否比当前

随机推荐

  • STM32 USB CDC VPC

    STM32 USB CDC VPC 关键字 STM32 STM32CubeMX HAL库 USB 虚拟串口 串口不定长接收 1 简介 通过使用stm32cubemx 实现USB CDC虚拟串口 并与硬件串口进行数据传输 实现了硬件串口数据的
  • 手机怎么访问服务器未响应,手机设置路由器服务器未响应怎么办

    手机设置路由器服务器未响应怎么办 内容精选 换一换 自定义线路解析 支持DNS根据访问者的IP地址返回特定的IP地址 如果访问者所属Local DNS不支持扩展DNS机制 Extension Mechanisms for DNS EDNS
  • 将数组作为参数进行传递(转)

    有两种传递方法 一种是function int a 另一种是function int a 这两种两种方法在函数中对数组参数的修改都会影响到实参本身的值 对于第一种 根据之前所学 形参是实参的一份拷贝 是局部变量 但是数组是个例外 因为数组的
  • MySQL5.7_空间数据操作

    MySQL5 7 空间数据操作 创建数据库 空间数据库 spatialDB进行测试 USE spatialDB DROP TABLE t point CREATE TABLE t point id int 11 NOT NULL AUTO
  • 论文阅读笔记(四十七):Attention Is All You Need

    Abstract The dominant sequence transduction models are based on complex recurrent or convolutional neural networks that
  • 将python程序文件隐藏源码(windows下转换成.pyd)

    将编写好的Python程序给别人调用 隐藏源码步骤 1 安装Cython库 pip install Cython 2 新建一个转换程序Change py 内容如下 import Cython Build import distutils c
  • 【深入QT】信号槽机制浅析

    一 信号槽的基本概念 关于QT信号槽的基本概念大家都懂 通过信号槽机制 QT使对象间的通信变得非常简单 A对象声明信号 signal B对象实现与之参数相匹配的槽 slot 通过调用connect进行连接 合适的时机A对象使用emit把信号
  • 【PHP代码审计】ThinkPHP代码审计

    目录 0x001 开发方式 0x002 审计流程 1 启用调试开关 2 版本查看 3 定位函数 4 测试是否存在漏洞 5 版本自身漏洞 0x001 开发方式 在审计源码时根据不同的开发方式对应不同的审计方法 自写 有的站点虽然使用了thin
  • 数组对象and字符串对象

    一 数组对象 JavaScript中的数组对象可以使用new Array 或字面量 来创建 在创建以后 就可以调用数组对象提供的一些方法来实现对数组的操作 1 1数组类型检测 数组类型检测有两种常用的方式 分别是使用 instanceof
  • source insight 绿色护眼主题&暗色护眼主题

    效果如下 绿色背景颜色为RGB 195 222 204 主题下载地址 链接 https pan baidu com s 1aSkQOo70nr498hf wHN4Jw 提取码 f3f6 来自百度网盘超级会员V5的分享
  • CollapsingToolbarLayout用法详解(简洁易懂)

    Collapsing翻译过来就是折叠的意思 CollapsingToolbarLayout 顾名思义就是可折叠的toolbar布局 先看一下使用它的效果 可以看到有这样几个效果 1 背景图片渐渐消失变为主题颜色 2 FloatingActi
  • stata学习笔记

    如何认识数据 S1 打开数据 首先 打开stata 你会看到这样的一个界面 面对全英文的界面 需要知道每一块位置代表着什么 方便以后的操作 中下 Command 命令窗口 你可以在此窗口输入想要执行的stata命令 左上 Review 历史
  • 我的第一个Spring程序

    转自 我的第一个Spring程序 下文是笔者创建第一个Spring示例的方法分享 如下所示 步骤一 使用Eclispe创建一个Java项目 在 Eclipse 中创建一个简单的 Java 项目 依次单击 File gt New gt Jav
  • Python:运营自媒体,如何修改图片的MD5值

    目录 前言 获取所有图片 更改图片MD5值 生成exe可执行文件操作 主界面 线程代码 进度条代码 前言 在我们运营自媒体的时候 或多或少会用到别人的图片 但是某些自媒体平台会判断图片的MD5 如果MD5相同 会认为你抄袭 默认会降低你的权
  • 静态链接与动态链接

    文章目录 静态链接 动态链接 说起静态链接和动态链接 大家肯定都不陌生 静态链接与动态链接的差别顾名思义 动态链接使动态库中的函数在程序运行后 才被用到 而静态链接则在运行前 就将所需函数合并了 我们来看看两者在 Linux 下的定义 静态
  • 单片机毕设 基于物联网的智能衣柜系统设计

    文章目录 1 简介 2 绪论 2 1 课题背景与目的 3 系统设计 3 1 硬件系部分 3 2 软件部分 3 1 系统架构 3 2 硬件设计 3 3 软件设计 主程序介绍 按键扫描程序设计流程 DHT11 读取程序流程图 LCD12864
  • 使用python搭建一个简易的Web服务

    介绍 简单的说 web服务器就是机器上监听了本地的IP和端口的一个进程 当有客户的请求进来时 它会响应客户的请求并返回相应的信息 客户端和服务端之间的通信基于HTTP协议 客户端可以是浏览器或者任何支持HTTP的应用 我们平时访问网页或手机
  • 2021-06-29 ffmpeg临时记录

    我们将 H264 和 AAC 码流存储为MP4文件的时候 就需要在 MP4文件中增加两个流通道 一个存储Video H264 一个存储Audio AAC 假设H264和AAC只包含单个流通道 avformat new stream 即在 A
  • 21. 实战:多线程+xpath抓取大量菜价信息(四种方法)

    目录 前言 目的 思路 代码实现 多线程 xpath 1 抓取单个页面 2 创建线程池 3 保存到文件 运行效果 完整代码 举一反三 多进程 xpath 多线程 bs4 多进程 bs4 总结 前言 我们学习了多线程 多进程对于提高效率的方法
  • Qt 的一些心得(背景设置,圆角,半透明)

    一 背景刷成黑色 前景色设为白色 方法一 paltette方式 经测试 该方法不会影响到其他控件 推荐使用 QPalette bgpal palette bgpal setColor QPalette Background QColor 0