如何使用 Qt 在屏幕上绘制选择矩形?

Posted

技术标签:

【中文标题】如何使用 Qt 在屏幕上绘制选择矩形?【英文标题】:How can I draw a selection rectangle on the screen with Qt? 【发布时间】:2010-09-22 13:33:23 【问题描述】:

如何在 X11 中使用 Qt 在我的屏幕上绘制一个选择矩形? 我希望能够在我的屏幕上(应用程序之外)拖动一个矩形,然后保存整个矩形。

提前致谢。

【问题讨论】:

【参考方案1】:

部分解决方案将涉及使用QPixmapgrabWindow() 函数,如下所示:

QPixmap::grabWindow(QApplication::desktop()->winId());

Qt 有一个example program for this here。

解决方案的其余部分,即绘制要抓取的区域,可能可以通过使用全屏透明窗口来渲染鼠标绘制的矩形,然后从抓取的桌面图像中获取其轮廓的部分或使用全屏来实现窗口,上面绘制了整个抓取的屏幕。

【讨论】:

嗯,是的,我知道。这是我最初的方法。由于我正在编写一个屏幕截图实用程序,你认为它初始化和截取全尺寸屏幕截图所需的时间会很明显吗? 我认为它与任何其他屏幕截图实用程序一样响应迅速。构建和测试示例程序将是一个快速的实验。 是的,好吧,我会接受你的回答。谢谢。

以上是关于如何使用 Qt 在屏幕上绘制选择矩形?的主要内容,如果未能解决你的问题,请参考以下文章

如何在带有 Qt 的 OpenGL 中使用顶点缓冲区对象绘制矩形?

在屏幕上绘制渐变

如何使用 Qpainter 在 Qt 中绘制棋盘

如何通过按下和拖动在 Qt Quick/QML 画布中绘制一个矩形

如何在libgdx使用矩形类来绘制矩形边框?

QT软件开发: 点击鼠标在窗口里绘制矩形(窗口透明背景)