问题标签 [paint]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2189 浏览

android - Android TextView 上的最大行长

我将格式化的单行文本(没有 \n)放到不可编辑的 TextView 中。在程序的导航中,可以更改文本。在某些文本上,TextView 缩小到 0x0 像素,我什么也看不到!我添加了一些菜单来每次将文本截断 10 个字符,我发现如果字符数大于 4470,则 TextView 会缩小。

通过将 \n 放在中间将文本分成几行可以解决问题,但这不是我的意图。

你能帮我看看这是否被记录在案,或者有什么可以设置来消除这个限制吗?

0 投票
2 回答
572 浏览

qt - Qt 绘制的内容丢失了

我正在编写一个信息屏幕程序。我创建了一个全屏小部件并在其上绘制内容。

为了延长 TFT 显示设备的生命周期,我想实现像素移位功能。换句话说,每X分钟,我将屏幕向左/右/上/下移动Y像素。

我的方法如下:

  1. 我使用两层(两个 QWidget)。
  2. 我在顶层绘制内容。
  3. 当执行像素移动时,我只是将顶层移动到指定的偏移量。
  4. 然后在底层填充背景颜色。

但是,我发现了一个问题:

如果我将顶层向上移动 10 个像素,则 10 个像素的内容会离开屏幕。但是当我将此层向下移动 10 个像素时。10 像素内容不会更新,它已经消失了。

我怎样才能保留这些 10 像素的内容?是否有任何神奇的小部件标志来解决这个问题?

更新 1: 代码是用语言 D 编写的,但很容易理解:

0 投票
3 回答
8147 浏览

windows - Win32:一个窗口在其整个生命周期中是否具有相同的 HDC?

我可以在油漆周期之外使用直流电吗?我的窗口的 DC 是否保证永远有效?

我试图弄清楚我的控件的设备上下文 (DC) 的有效时间。

我知道我可以打电话给:

获取我的控件窗口的设备上下文,但这是否允许?

当 Windows 向我发送 WM_PAINT 消息时,我应该调用BeginPaint / EndPaint以正确确认我已绘制它,并在内部清除无效区域:

但是调用 BeginPaint 也会在 PAINTSTRUCT 结构中返回一个 DC。这是我应该画的DC。

我在文档中找不到任何内容表明 BeginPaint() 返回的 DC 与我从 GetDC() 获得的 DC 相同。

尤其是现在,在桌面合成时代,在我在 BeginPaint 之外获得的 DC 上绘画是否有效?

在绘画周期中,我似乎有两种方法可以让 DC 绘画:

  1. dc = GetDC (hWnd);

  2. BeginPaint(&paintStruct);

还有第三种方法,但它似乎是我开发的 Borland Delphi 的一个错误。

WM_PAINT处理期间,Delphi 认为 wParam 是一个 DC,并继续在其上进行绘制。而 MSDN 说 WM_PAINT 消息的 wParam 未使用。

为什么

我的真正目标是尝试针对 HDC 保留持久 GDI+ 图形对象,以便我可以使用依赖于持久 DC 的 GDI+ 的一些性能更好的功能。

在 WM_PAINT 消息处理期间,我想将 GDI+ 图像绘制到画布上。下面的nieve版本很慢:

GDI 包含一个执行速度更快的位图,一个 CachedBitmap。但是不加思索地使用它不会带来性能优势:

性能提升来自于创建 CachedBitmap 一次,因此程序初始化:

现在在油漆周期:

除了现在我相信只要应用程序正在运行,我在程序初始化后获得的 DC 将与我的窗口相同。这意味着它可以通过以下方式生存:

  • 快速用户切换
  • 组合启用/禁用
  • 主题切换
  • 主题禁用

我在 MSDN 中找不到任何东西可以保证只要窗口存在,相同的 DC 将用于特定窗口。

注意:我没有使用双缓冲,因为我想成为一名优秀的开发人员,并做正确的事* 有时这意味着你的双缓冲是不好的。

0 投票
2 回答
808 浏览

javascript - 使用 Javascript/CSS 在 PNG 中绘制所有像素(不包括透明像素)?

我需要使用 Javascript/CSS 创建 PNG 的剪影。这可能吗?

我尝试了以下方法:使用绝对定位和 z-index 多次堆叠具有降低不透明度的 PNG。这不起作用。

不幸的是,我不能使用 PHP 或其他东西,然后是 Javascript 和 CSS。

我对叠加层等有了一些想法,但我不知道该怎么做。有小费吗?

更新:这只需要在 webkit 浏览器中工作,所以你可以带上你的 webkit 技巧!:)

0 投票
1 回答
3334 浏览

multithreading - 如何使用qt在多线程中绘制内容?

我想使用 qt 在多线程应用程序中绘制内容。

qt 在主线程中运行。我有一个线程 B 来生成绘制任务并将任务发送到 qt 主线程。目前,我在线程 B 中调用“mywidget.update”,“mywidget.paintEvent(..)”将在主线程中触发。

我的问题是我无法通过使用方法更新将任何自己的数据传递给“mywidget.paintEvent(..)”。目前我使用队列来存储数据,我想绘画,并从paintEvent中读取它。但我必须同步这个队列。

有没有更好的办法?比如注册一个自己的绘画事件。如果有人发布简单的示例或一些链接,我们将不胜感激。

0 投票
4 回答
16662 浏览

java - 在半透明框架/面板/组件上重新绘制。

我正在尝试在 OSX 上使用 Java 创建一个半透明窗口并添加一个JLabel

JLabel每秒都会更改其文本....

替代文字

但是,该组件的重绘效果不佳。

我怎么解决这个问题?

我找到了这些 文章,但我不知道如何解决它。

如果可能,请粘贴修复源代码,这是我的:

0 投票
2 回答
2290 浏览

c++ - 为什么即使在调用 UpdateWindow() 之后绘制消息也会丢失?

我有一个具有以下 Windows 层次结构的应用程序:

当 W2 中发生某些事件时,我会调用UpdateWindow

OnPaintW2的处理是这样的:

但有时油漆信息会在 W2 中丢失。虽然UpdateWindow被调用,但没有相应的OnPaint() 被调用。

如果我WS_EX_TRANSPARENT向 W1(W2 的父级)添加一个属性,那么总是会收到 @W2 的绘制消息。

但是添加WS_EX_TRANSPARENT标志的问题是当我调整窗口 W1 的大小时它会产生很多闪烁。

我的问题是: 1. W2 有什么问题导致 Paint 消息丢失?2.为什么添加WS_EX_TRANSPARENT解决了Paint问题。3. 使用flag如何解决闪烁问题。

谢谢,

0 投票
1 回答
2148 浏览

java - 如何在 CLONE JPanel 中绘制()?

任何人都知道如何在克隆 JPanel 中重新绘制。我正在使用 CLONE,所以我可以 REPAINT() 一个,另一个会自动执行相同的操作。

如果我在原始面板或克隆面板中移动鼠标,我的代码只会绘制原始 JPanel,

但是如果我在克隆面板中移动鼠标,这个 jpanel 不会绘制。

提前致谢

代码:

0 投票
2 回答
3484 浏览

qt - 如何在 QT 中获取按钮的绘制事件

我是 QT 的新手,我尝试了很多关于如何在 QT 中获取按钮绘制事件的示例。我没有办法做到这一点。

如何在 QT 中设置按钮的代表?如何获取按钮的绘制事件?

我读了很多文章,上面说我们可以得到按钮的绘制事件,我们也可以自定义。但我没有得到如何获得绘画事件的代码..

我尝试做这个示例,通过子分类我仍然没有得到事件。请告诉我哪里错了

我仍然无法获得这些事件。

请帮帮我。

谢谢

0 投票
4 回答
1809 浏览

java - Add transparent JPanel upon AWT Component to paint on

I've got a Problem: In my Java application I've got an AWT Component (cannot change that one) that streams and shows an avi-file. Now I want to draw upon this movie and thought about putting a transparent JPanel above it and draw on that one.

This does not work since I either see the avi-stream or the drawn lines but not both.

I read somewhere that AWT does not support transparency of components - but the panel is a JPanel which is able to do so.

Can someone please help me with this one - thanks in advance.