【发布时间】:2020-05-25 19:54:48
【问题描述】:
我正在尝试用 C++ 编写一个工具来帮助我学习语言。它将捕获屏幕上的一个区域(一个单词或句子),处理文本,然后在 GUI 应用程序中显示有关捕获文本的信息。
这应该与 gnome-screenshot 等屏幕捕获工具和 Microsoft 在 Windows 上的截图工具非常相似。
第三方应用程序类似于包含可扫描文本的 pdf 查看器或图像查看器。我的应用程序显示有关捕获的文本的信息。我的应用程序还在屏幕上绘制了一个可调整大小的“捕获窗口”,如图中围绕单词的红色框所示。
我的问题是关于在屏幕上绘制这个红色框。如何在屏幕上画一个红框?我一直在尝试用 xLib 和 QT 来做这件事,虽然我更喜欢用 QT 做这件事,因为它有更好的文档记录和跨平台。
编辑:我修改了问题,使其更简洁明了我的目标,以及接受的答案如何解决我的问题。
【问题讨论】:
-
您的问题可能是您所说的屏幕上的框。你的意思是一个(大部分)透明的、无边界的窗口吗?当单词在屏幕上移动时,这个框会发生什么?您的程序如何知道要更新该框?
-
I failed to get GTK working for me, I couldn't get an example compiled你放弃得太快了,apt-get install gtkmm怎么样?至少你会处理 C++ 库。 -
我找到了一些很好的截屏示例,qt 似乎可以做到这一点。我可以让他们根据屏幕上矩形的大小裁剪图像。但是,我似乎无法在屏幕上绘制一个矩形,这是让我感到沮丧的部分。是的,一个带有小边框的大部分透明盒子。当在单词上创建框时,我将文本捕获到图像,我的程序将在稍后定义的按键上获取图像。
-
是的,我很早就放弃了 GTK。但是,如果事实证明这是浪费时间,我不想在这方面投入时间,因为我认为我的问题是错误的。
-
当我读到你的问题的标题时,我想象有人试图用 ASCII 绘制框,或者有人尝试使用一些图形/游戏库来绘制框。在这两种情况下,它只会出现在您的 C++ 应用程序创建的窗口中。恕我直言,您可能有更多机会获得标题为“使用 C++ 捕获屏幕文本”或类似内容的答案。也就是说,明确表示您想要拦截其他应用程序编写的内容。
标签: c++ qt user-interface screenshot xlib