?
also ich hab keine wie fast immer keinen plan, das einzige was ich dir anbieten kann ist ein kleiner test case
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <time.h>
#include <gtk/gtk.h>
#include <glib.h>
#include <pthread.h>
#include <sys/time.h>
#define YES_IT_IS (1)
#define NO_IT_IS_NOT (0)
#define MICRO_IN_SEC 1000000.00
double microtime(){
struct timeval tp = {0};
gettimeofday(&tp, NULL);
return (double)(tp.tv_sec + tp.tv_usec / MICRO_IN_SEC);
}
void destroy (GtkWidget *widget, gpointer data)
{
gtk_main_quit ();
}
void *argument_thread (void *label)
{
char tt[30];
for (;;){
gdk_threads_enter ();
sprintf(tt,"%lf",microtime());
gtk_label_set_text (GTK_LABEL (label), tt);
gdk_threads_leave ();
}
return NULL;
}
int main (int argc, char *argv[])
{
GtkWidget *window;
GtkWidget *label;
pthread_t yes_tid;
/* init threads */
g_thread_init (NULL);
gdk_threads_init ();
gdk_threads_enter ();
/* init gtk */
gtk_init(&argc, &argv);
/* create a window */
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_signal_connect (GTK_OBJECT (window), "destroy",
GTK_SIGNAL_FUNC (destroy), NULL);
gtk_container_set_border_width (GTK_CONTAINER (window), 10);
/* create a label */
label = gtk_label_new ("And now for something completely different ...");
gtk_container_add (GTK_CONTAINER (window), label);
/* show everything */
gtk_widget_show (label);
gtk_widget_show (window);
/* create the thread */
pthread_create (&yes_tid, NULL, argument_thread, label);
/* enter the GTK main loop */
gtk_main ();
gdk_threads_leave ();
return 0;
}
oder du postest mal deinen source code dann kann ich ja mal schauen ob ich da was machen kann hoffe das hilft ein bischen, falls du ne lösung hast post die bitte, interessiert mich auch