小弟曾天真的以为“走马灯程序可以这样写:
#include <gtk/gtk.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <pthread.h>
gint x = 1000;
gint y = 800;
GtkWidget *label;
GtkWidget *fixed;
void *move_button( void *arg)
{
while(1)
{
if (x <= 0)
x=1000;
x=x -10 ;
gtk_fixed_move (GTK_FIXED (fixed), label, x, y);
usleep(50000);
}
}
int main( int argc, char *argv[] )
{
GtkWidget *window;
int res;
pthread_t a_thread;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Fixed Container");
gtk_window_set_default_size(GTK_WINDOW (window), 1000, 800);
g_signal_connect (G_OBJECT (window), "destroy",G_CALLBACK (gtk_main_quit), NULL);
gtk_container_set_border_width (GTK_CONTAINER (window), 10);
fixed = gtk_fixed_new ();
gtk_container_add (GTK_CONTAINER (window), fixed);
gtk_widget_show (fixed);
label = gtk_label_new("I like DMB");
gtk_fixed_put (GTK_FIXED (fixed), label, 1000, 800);
gtk_widget_show (label);
gtk_widget_show (window);
res = pthread_create(&a_thread,NULL,move_button,NULL);
if (res != 0)
{
perror("Thread creation failed");
exit(EXIT_FAILURE);
}
gtk_main ();
return 0;
}
可结果是label 不会随时间均匀的在gtk的窗口上显示走动!当鼠标点击gtk窗口时label才动一下! 这是为什么呢? 如何解决?
关于“GTK+2.0走马灯”程序的疑惑
-
- 帖子: 56
- 注册时间: 2008-08-11 10:44
- BigSnake.NET
- 帖子: 12522
- 注册时间: 2006-07-02 11:16
- 来自: 廣州
- 联系:
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
-
- 帖子: 56
- 注册时间: 2008-08-11 10:44
学习GTK有什么网站好一些啊?
如题!