gpt4 book ai didi

c - GtkWidget 绘制事件多次触发

转载 作者:太空宇宙 更新时间:2023-11-03 23:28:26 27 4
gpt4 key购买 nike

我一直在摸不着头脑,为什么下面的代码会触发绘制回调三次而不是一次。

#include <iostream>
#include <gtk/gtk.h>

using namespace std;

void on_draw(){
cout << "drawing"<<endl;
}

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

gtk_init(&argc, &argv);

window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
drgArea = gtk_drawing_area_new();
// gtk_widget_set_redraw_on_allocate(drgArea, -1);
gtk_container_add(GTK_CONTAINER(window), drgArea);
gtk_widget_show_all(window);
g_signal_connect(drgArea, "expose-event",
G_CALLBACK(on_draw), NULL);
gtk_main();

return 0;
}

最佳答案

这可能与您的合成器/窗口管理器有关。

使用 cinnamon [2.0.14] 在启动应用程序时显示 2 重绘(无论我使用 gtk3/3.10.6/"draw"还是 gtk2/2.24.22/"expose-事件”)。

关于c - GtkWidget 绘制事件多次触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21153022/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com