image - 如何构造简单的wxWidgets图片展示

标签 image bitmap wxwidgets scrolledwindow

我编写了一个 wxPython 程序,并将其翻译成 wxWidgets。该程序有一个显示图像的滚动窗口。在 Rappin,wxPython In Action( list 12.1)之后,我在面板中使用了 StaticBitmap。在浏览最新的 wxWidgets 文档时,我发现了 dire warning wxStaticBitmap 应该只用于非常小的图像。它说,“......如果你想便携地显示更大的图像,你应该使用自己的控件。”好的。给我看看。我没有“自己的控制权”。

是 Rappin 错了,还是文档过时了?

问题 - 一个新手,毫无疑问 - 在 wxWidgets 中做一个简单的 ImageView 窗口的正确方法是什么? wxStaticBitmap 的替代品会很好。我查看了 wxWidgets“samples”目录中的“image”程序。这是一场 war 与和平。当然必须有一个 jar 头类或一个简单的食谱。

最佳答案

不要让“图像”样本的大小欺骗了您,只需几行代码即可完成您想要的操作。

搜索 MyImageFrame image.cpp 文件中的类,它只不过是一个具有私有(private)位图字段的类,一个用于设置位图和窗口客户端大小的自定义构造函数,以及一个用于 EVT_PAINT 的事件处理程序:

void OnPaint(wxPaintEvent& WXUNUSED(event))
{
    wxPaintDC dc( this );
    dc.DrawBitmap( m_bitmap, 0, 0, true /* use mask */ );
}

由于您不想要框架类,因此您的秘诀是:创建 wxWindow 的简单后代具有相似的构造函数、绘制处理程序并复制 wxStaticBitmap 的方法您在代码中使用的。也许只是一种设置新位图并将控件大小调整为新位图尺寸的方法。

关于image - 如何构造简单的wxWidgets图片展示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2283667/

相关文章:

android - 文件名中有空格的可绘制对象?

java - 如何将图库中的图像设置为 slider ?

c++ - 模型、 View 、 Controller ——我理解类图,但我不理解所有的线程问题。建议?

javascript - 如何使用 JavaScript 找到滚动条的中间点?

php - 无法显示源图像。 PHP/MYSQL

javascript - 在使用 Jquery 或 JS 加载(或被看到)之前修改 HTML 元素

android - 创建缩略图失败,无规则删除原始错误

java - 回收 ImageView 的 Bitmap

c++ - wxPuts 是做什么的?

python - 在 linux mint 中安装 WxPython 时出错