请教使用drawingarea画矩形,但是不使用exposeevent的问题

发布于 2022-08-03 20:56:49 字数 1398 浏览 13 评论 2

//代码如下:
#include <gtk/gtk.h>

void draw_image(GtkWidget *widget,gpointer data)
{
    gdk_draw_rectangle( widget->window,
           widget->style->fg_gc[GTK_WIDGET_STATE( widget )],
           TRUE,10, 10, 110, 110 );
}

int main( int argc, char *argv[] )
{
    GtkWidget *window;
    GtkWidget *draw_area;

    gtk_init( &argc, &argv );
   
    window = gtk_window_new( GTK_WINDOW_TOPLEVEL );
    gtk_widget_set_usize( window, 400, 300 );
    g_signal_connect( G_OBJECT( window ), "destroy",
              G_CALLBACK( gtk_main_quit ), NULL );
    gtk_widget_show( window );
   
    draw_area = gtk_drawing_area_new( );
    gtk_widget_set_size_request( draw_area, 400, 300 );
     gtk_container_add(GTK_CONTAINER(window),draw_area);
    gtk_widget_show( draw_area);
   
    draw_image(draw_area,NULL);
   
    gtk_main( );
    return 0;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浮云落日 2022-08-05 22:47:04

我也是初学GTK的,不使用expose,当expose消息来了就使用系统默认的函数,什么也不画了。我认为是这样的,不知道还有哪位高出来指点一下我们这些初学者

許願樹丅啲祈禱 2022-08-04 07:43:58

画不出吧

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文