社区
Qt
帖子详情
QPixmap::grabWindow截出来的图片为啥没有鼠标标志呢
rbllbr123
2013-03-01 02:04:14
QPixmap::grabWindow截出来的图片为啥没有鼠标标志呢
将鼠标画上去是一种方法 但总感觉不太好
...全文
807
2
打赏
收藏
QPixmap::grabWindow截出来的图片为啥没有鼠标标志呢
QPixmap::grabWindow截出来的图片为啥没有鼠标标志呢 将鼠标画上去是一种方法 但总感觉不太好
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
乔巴好萌
2013-03-01
打赏
举报
回复
实现里面就不抓mouse cursor的 所以还是换别的思路把 QPixmap QPixmap::grabWindow(WId winId, int x, int y, int w, int h ) { RECT r; GetClientRect(winId, &r); if (w < 0) w = r.right - r.left; if (h < 0) h = r.bottom - r.top; #ifdef Q_WS_WINCE_WM if (qt_wince_is_pocket_pc()) { QWidget *widget = QWidget::find(winId); if (qobject_cast<QDesktopWidget *>(widget)) { RECT rect = {0,0,0,0}; AdjustWindowRectEx(&rect, WS_BORDER | WS_CAPTION, FALSE, 0); int magicNumber = qt_wince_is_high_dpi() ? 4 : 2; y += rect.top - magicNumber; } } #endif // Create and setup bitmap HDC display_dc = GetDC(0); HDC bitmap_dc = CreateCompatibleDC(display_dc); HBITMAP bitmap = CreateCompatibleBitmap(display_dc, w, h); HGDIOBJ null_bitmap = SelectObject(bitmap_dc, bitmap); // copy data HDC window_dc = GetDC(winId); BitBlt(bitmap_dc, 0, 0, w, h, window_dc, x, y, SRCCOPY #ifndef Q_WS_WINCE | CAPTUREBLT #endif ); // clean up all but bitmap ReleaseDC(winId, window_dc); SelectObject(bitmap_dc, null_bitmap); DeleteDC(bitmap_dc); QPixmap pixmap = QPixmap::fromWinHBITMAP(bitmap); DeleteObject(bitmap); ReleaseDC(0, display_dc); return pixmap; }
jdwx
2013-03-01
打赏
举报
回复
这个没注意过,好像没有带鼠标的。 windows自带的截图工具也没有鼠标。
基于Qt的C++
截
屏功能实现与优化
Qt 是一个功能强大的跨平台 C++ 开发框架,广泛应用于图形用户界面(GUI)程序的开发。其核心模块包括QtCoreQtGui和QtWidgets,分别负责基础类、图形渲染和窗口控件管理。Qt 支持
Window
s、Linux、macOS 以及嵌入式系统,具备良好的可移植性与扩展性。在图形界面开发中,Qt 提供了丰富的类库与信号-槽机制,简化了事件处理与界面交互逻辑。通过QScreenQ
Window
与
QPix
map
等核心类,开发者可以高效实现诸如
截
屏、图像处理等高级功能。
Qt踩坑记001:无法在读取相机图像的取景器QVideoWidget/QGraphicsVideoItem上显示
图片
不要指望在Qt自带的取景器QVideoWidget/QGraphicsVideoItem上做太多的二次图形开发,限制太多了!
使用Qt实现最基础的
截
屏软件
通过设置窗口
标志
Qt::Frameless
Window
Hint、Qt::Q
Window
StayOnTopHint和Qt::Tool以及属性Qt::WA_TranslucentBackground,创建一个全透明的窗口。绘制选择区域:在paintEvent中,先绘制全屏
截
图,然后在
截
图上绘制用户选择区域(这一步是为了防止其他窗口干扰
截
图
鼠标
事件)保存选择区域:在mouseReleaseEvent中,根据用户选择区域从全屏
截
图中裁剪出选择区域的
截
图,并保存到文件。先上代码(主函数
没有
改动)
Qt学习(十)
截
图程序分析(接上篇)
因为本人今天还有事,事件
基本Widgets(02):【类】QWidget [官翻]
文章目录详细说明顶层和子级小部件组合小部件自定义小部件和绘画大小提示和大小策略事件函数和属性组小部件样式表透明度和双缓冲创建半透明窗口本地小部件与外来部件公共类型enum RenderFlag属性位置大小状态显示颜色样式附属功能顶级窗口的属性公共函数构造析构系统内容交互帮助拖放动作顶级窗口观感捕获和渲染图像特效蒙版上下文菜单层次关系光标焦点事件快捷方式输入法数码板手势模式布局地区几何大小包括框架不包括框架布局大小旁白大小相对位置无障碍重新实现的功能函数槽函数信号静态公用函数受保护函数重新实现的受保护函数受保
Qt
21,494
社区成员
26,692
社区内容
发帖
与我相关
我的任务
Qt
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
复制链接
扫一扫
分享
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章