Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ GTK+ _ Пару вопросов по gtk

Автор: tormozzz 27.4.2010, 22:57

кто работал с gtk помогите пожалуйста.
1) есть код загрузки изображения. перед загрузкой он проверяет - картинку ли содержит файл. и вот где то процентах в 10 запусков он говорит что файл не является картинкой. почему?

ImgBtn::ImgBtn(const char* filename)
{
    evbox = gtk_event_box_new();
    if (image) g_free(image);
    if (FileExists(filename))
    {
        info = gdk_pixbuf_get_file_info(filename,&width,&height);
        if (info)
        {
            cstImg = gdk_pixbuf_new_from_file(filename,NULL);
        }
        else
        {
            printf("File %s is not image",filename);
        }
        if (cstImg)
        {
            image = gtk_image_new_from_pixbuf(cstImg);
        }
        else
        {
            printf("Cold not load %s \n",filename);
        }
        g_free(info);
    }
    else
    {
        printf("File %s not found \n",filename);
        image = gtk_image_new();
        cstImg = NULL;
        info = NULL;
    }
    if (image)
        gtk_container_add(GTK_CONTAINER(evbox),image);
    gtk_widget_show_all(GTK_WIDGET(evbox));
}

2)далее. почему процедура, прицепленная к window событию "size-allocate" исполняется бесконечно, начиная с запуска программы?
3)есть ли возможность создать и прицепить маску прозрачности на окно? в доках не нашел... или плохо искал...
и еще... использую codeblocks и под виндой, и под линуксом компилятор gcc. в винде проект собирается нормально, а в линуксе при линковке ругается на каждую gtk функцию, хотя в командах линковщика указано 'pkg-config --libs gtk+-2.0'. либы в /usr/lib есть. путь поиска в настройках тоже есть. в чем проблема?

Автор: Гость 22.6.2010, 19:40

Если говорит, что файл не является картинкой, то под Windows это может быть в случае с русскими именами. GTK работает с UTF8 кодировкой, а для работы с файловой системой Win32 нужна родная виндовозная кодировка.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)