gpt4 book ai didi

c++ - QT如何从像素绘制 map 并创建工具提示

转载 作者:行者123 更新时间:2023-11-28 06:44:32 36 4
gpt4 key购买 nike

我要画 map

例如 map 大小 1000x1000 但也有可能更大。但我不想让窗口大小超过 600x600

我想将“像素”大小设置为 2x2(以便更明显)(像素可以具有 3 种颜色中的一种,但我称它为像素,因为它很小)

但是当我绘制具有特定颜色的像素时,当我将鼠标放在该像素上时,我想在箭头附近显示工具提示(即鼠标箭头)和一些信息,但所有像素都有自己的工具提示(其他信息)

问题:

  1. 如何使我绘制的 map 大于窗口,并且可以使用鼠标(抓取 -> 移动 -> 放下)和滚动条移动它。
  2. 如何制作工具提示?以及如何在这张 map 上放置像素?
  3. 如何在我点击像素时捕捉事件?

最佳答案

How to make that i draw map larger than window, and can move it with with scroll bars.

A QScrollArea可能是您要为此使用的小部件。请参阅 Qt 包含的“plugandpaint”或“imageviewer”示例程序以了解如何完成。

and with mouse (grab -> move -> drop).

如果您希望用户能够通过在背景上单击并拖动来滚动图像的可见部分,您可以通过覆盖 mousePressEvent() 来实现。 , mouseMoveEvent() , 和 mouseReleaseEvent()显示 map 图像的小部件的方法。请注意,使用鼠标左键单击滚动 map 可能与您使用鼠标左键单击在 map 上绘制像素的目标相冲突。

How to make tooltip ?

您可以通过调用静态方法来显示工具提示 QToolTip::showText()

And how to put pixel on this map ?

覆盖您的小部件的 paintEvent() 以调用 drawPoint()drawPoints()重新绘制图像后。 (或者,您可以将包含 map 图像的 QPixmap 转换为 QBitmap ,将更新的像素写入 QBitmap,然后再次将 QBitmap 转换回 QPixmap;在某些情况下这可能更有效)

How to catch event, when i click on pixel ?

覆盖显示 map 的小部件上的 mousePressEvent()。

关于c++ - QT如何从像素绘制 map 并创建工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25246685/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com