新手:将 RGB 渲染到 GTK 小部件——如何?

Posted

技术标签:

【中文标题】新手:将 RGB 渲染到 GTK 小部件——如何?【英文标题】:Newbie: Render RGB to GTK widget -- howto? 【发布时间】:2010-05-11 21:26:42 【问题描述】:

大图:我想在 Linux 机器上通过 GTK 渲染 RGB 图像。

我是一个沮丧的 GTK 新手,所以请原谅我。

我假设我应该创建一个 Drawable_area 来渲染图像——对吗?

然后我必须创建一个附加到该区域的图形上下文吗?怎么样?

我的简单应用程序(它甚至还没有解决 rgb 问题是这样的:

int main(int argc, char** argv)

GdkGC     * gc     = NULL;
GtkWidget * window = NULL;
GtkDrawingArea * dpage = NULL;
GtkWidget * page = NULL;

gtk_init( &argc, & argv );

window = gtk_window_new( GTK_WINDOW_TOPLEVEL );
page = gtk_drawing_area_new( );
dpage = GTK_DRAWING_AREA( page );
gtk_widget_set_size_request( page, PAGE_WIDTH, PAGE_HEIGHT );
gc = gdk_gc_new( GTK_DRAWABLE( dpage ) );

gtk_widget_show( window );
gtk_main();

return (EXIT_SUCCESS);

我的 dpage 显然不是“可绘制的”(尽管它是一个绘图区域)。我对 a) 我如何获取/创建后续函数调用中所需的图形上下文感到困惑? b)我是否接近解决方案,或者我完全 *#&@& 错误以至于没有希望 c) 婴儿步骤教程。 (我从 hello world 开始作为我的基础,所以我得到了 远)。

感谢所有帮助。

bp

【问题讨论】:

【参考方案1】:

您至少应该阅读涂鸦教程 (http://library.gnome.org/devel/gtk-tutorial/stable/c2422.html),如果不是其中一部分的较大教程。

既然您标记了您的问题 c++,我建议您使用 gtkmm,如果您已经非常了解 C++,您会发现使用它进行开发会容易得多。还有一个教程:http://library.gnome.org/devel/gtkmm-tutorial/stable/

【讨论】:

感谢您的回复——非常感谢!我将搬到 gtkmm。我仍然对图形上下文(绘图区域、小部件等的 [派生] 成员)有点迷惑,但会继续挖掘。谢谢你。 [顺便说一句:我喜欢红肉]。

以上是关于新手:将 RGB 渲染到 GTK 小部件——如何?的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 GTK 容器小部件的大小?

如何访问存储在 Gtk::Box / Gtk::Grid 中的 [i] 处的小部件?

如何计算存储在 Gtk::Grid 中的小部件?

如何在 GTK 中更新(绘制)一个小部件和仅这个小部件

在 Gtk+ 中堆叠小部件

如何在 GTK 和 Python 中获取小部件的背景颜色?