- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在这里有点发疯了。
我正在尝试使用 cairo 在我的 GTK 表单上绘制一些简单的图形。
#include <stdio.h>
#include <gtk/gtk.h>
#include <cairo.h>
GtkWidget* window;
GtkWidget* darea;
int main(int argc, char **argv)
{
gtk_init(&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size(GTK_WINDOW(window), 390, 240);
darea = gtk_drawing_area_new();
gtk_container_add(GTK_CONTAINER(window), darea);
cairo_t *cr;
cr = gdk_cairo_create(darea->window);
cairo_rectangle(cr, 0, 0, 100, 100);
cairo_fill(cr);
gtk_widget_show_all(window);
gtk_main();
return 0;
}
Gdk-CRITICAL **: IA__gdk_cairo_create: assertion `GDK_IS_DRAWABLE (drawable)' failed
#include <stdio.h>
#include <gtk/gtk.h>
#include <cairo.h>
GtkWidget* window;
GtkWidget* darea;
static gboolean
on_expose_event(GtkWidget *widget,
GdkEventExpose *event,
gpointer data)
{
cairo_t *cr;
cr = gdk_cairo_create(darea->window);
cairo_rectangle(cr, 0, 0, 100, 100);
cairo_fill(cr);
}
int main(int argc, char **argv)
{
gtk_init(&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size(GTK_WINDOW(window), 390, 240);
darea = gtk_drawing_area_new();
gtk_container_add(GTK_CONTAINER(window), darea);
g_signal_connect(darea, "expose-event",
G_CALLBACK(on_expose_event), NULL);
gtk_widget_show_all(window);
gtk_main();
return 0;
}
g_signal_connect(darea, "expose-event", G_GCALLBACK(on_expose_event), NULL);
static gboolean
on_expose_event(GtkWidget *widget,
GdkEventExpose *event,
gpointer data)
{
最佳答案
使用 Cairo 在小部件上绘图仅适用于公开事件。那是因为开罗不像矢量绘图程序,其中线条和形状是可以记住并可以操作的对象; Cairo 只是将形状绘制到绘图区域并忘记它们。
因此,当您最小化和恢复窗口,或将另一个窗口移到其上方时,形状就会消失。生成一个公开事件,让您知道形状已经消失并且需要重新绘制小部件。因此,您可以在公开事件处理程序中使用 Cairo 进行重绘。
关于GtkDrawingArea - 如何使其可绘制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9395111/
我在这里有点发疯了。 我正在尝试使用 cairo 在我的 GTK 表单上绘制一些简单的图形。 #include #include #include GtkWidget* window; GtkW
(C语言,GTK库) 在我的表单上,我有一个 GtkDrawingArea 小部件,我在上面使用 Cairo 绘制 GdkPixbufs(从文件加载)。我想要完成的是能够在窗口大小保持固定的情况下使用
我有一个用于可视化数据的 GtkDrawingArea。根据数据库和用户输入,绘图可能会变得非常大(大于允许的最大 GtkDrawingArea 大小)。因此,我想使用与当前窗口一样大的绘图区域,并在
在 the Reference Manual of GtkDrawingArea ,它说 Draw signals are normally delivered when a drawing area
我有一个林间空地布局,其中有一个固定大小的 GtkDrawingArea。层次结构的当前相关部分是: GtkWindow > GtkVBox > GtkHPaned > GtkViewport > G
这个问题几乎概括了我的问题。我有一个 GtkDrawingArea,它的表面 (cairo_surface_t) 的格式为 CAIRO_FORMAT_INVALID(默认),即该表面数据“不存在或不支
在 GTK3 中,当悬停在 GtkWidget 上时,如何将鼠标光标设置为十字线,在本例中为 GtkDrawingArea? 最佳答案 首先,你必须告诉GtkDrawingArea 小部件到use a
正如我在标题中提到的,我有两个程序:第一个程序创建一个 GtkWindow、GtkDrawingArea 并返回 GtkDrawingArea 窗口的 XID。第二个收到 XID 并对其执行一些操作(
我正在开发一个小型 GTK+ 程序,我在其中放置了一个 GtkDrawingArea .我用它来绘制一种比较具体的数据表示图,结果非常令人满意。 问题是:“图形”有很多数据要处理,绘图信号的回调被调用
下面是一段使用cairo 画东西的小代码。问题是cairo绘制的canvas比gtk的scrolled_window的面积大。但是 scrolled_window 不会滚动,所以我只能看到 Canva
下面是一段使用cairo 画东西的小代码。问题是cairo绘制的canvas比gtk的scrolled_window的面积大。但是 scrolled_window 不会滚动,所以我只能看到 Canva
我试图在 C 语言的 GtkDrawingArea 上放置一个按钮(GUI 是从一个空地文件生成的)。在 Glade 中,我将 GtkDrawingArea 和 GtkButton 放入 GtkFix
我用glade创建了非常简单的GTK3 C应用程序,其中包含按钮和GtkDrawingArea(与GtkPaned结合在一起)。当按下按钮时,它应该立即绘制一个矩形,但是,它不会发生。仅当鼠标在 Gt
我需要导入一个 pdf 文件作为我可以在其上绘制的背景。我想要一些新的数字,我想强调一些领域。 过去三天我一直在网上搜索。我发现的唯一相反的东西是写入 pdf 文件。 /* 反其道而行之 */cair
我正在尝试在 Python 3.6 中使用 python-vlc 和 Gtk 创建一个 GUI 应用程序。但是当我尝试访问我的 GtkDrawingArea 小部件的 xid(将它与我的播放器屏幕绑定
有人可以告诉我一个最小的工作示例,该示例使用 Gtk3 为开罗使用 C 语言在 GtkDrawingArea 中绘制一条线.我试过修改testcairo.c在 Gtk3 测试文件夹中,但我无法让它工作
1、我查了很多关于在 Gtk 中在 GtkWindow 中绘制矩形的引用资料,但很多都是使用 GtkDrawingArea 。我想知道我可以在没有 GtkDrawingArea 的情况下直接在 Gtk
背景 我想使用GdkFrameClock将小部件的更新与屏幕刷新率同步。这是为了在 LCD 屏幕上进行视觉刺激响应测量(因此需要尽可能接近精确的帧同步以保证信号的纯度)。 我已经阅读了该类的文档,但其
我有一个问题。 我需要使用函数 Xlib(XDrawLine 等)在小部件类型 GtkDrawingArea 上进行绘制。 为什么? 我使用的库是用 Xlib 绘制的。我需要在渲染函数drawSome
我在 VBox 中有一个 GtkLabel 和一个 GtkDrawingArea,我想使标签相对于 GtkDrawingArea 的 X 坐标(在 VBox 中标签的下方)居中,我如何告诉 GTK 使
我是一名优秀的程序员,十分优秀!