2015-06-16 4 views
0

Я пытаюсь использовать Julia с GTK и Cairo, чтобы нарисовать на холсте. Я думаю, что следующий код (адаптированный из фрагментов примера на странице GTK.jl) должен работать, но это не так. (Другие виджеты GTK работают, но не холст)Как нарисовать на холсте с помощью Cairo и GTK в Julia

Я был бы признателен, если кто-то может предложить, что не так с этим кодом, или дать указатель на полный пример.

using Gtk.ShortNames 
using Cairo 

function drawfn(w) 
    ctx = Gtk.getgc(w) 
    Cairo.set_coords(ctx, 0, 0, 800, 600, 0, 800, 0, 600) 
    h = Gtk.height(w) 
    w = Gtk.width(w) 

    Gtk.rectangle(ctx, 0, 0, w/2, h/2) 
    Gtk.set_source_rgb(ctx, 0, 0, 1) 
    Gtk.fill(ctx) 
end 


function main() 

    win = [email protected]("stuff", 800,600) 
    c = [email protected]() 
    Gtk.push!(win,c) 

    Gtk.draw(drawfn, c) 
    Gtk.showall(win) 

end 

main() 
+1

Какая ошибка вы получаете? Каким образом это не работает? –

+0

Окно появляется с твердым серым фоном. Никакие команды рисования (например, прямоугольник) не работают. Сообщение об ошибке отсутствует. Это говорит о возможности того, что мне нужно как-то разрешить видимость холста, но я пробовал различные методы делать это без везения. –

ответ

1

Я думаю, что это была ошибка в версии 0.8.1 от Gtk.jl. Я отправил вопрос в github, после чего vtjnash исправил его немедленно и пометил версию 0.8.2.

+0

Hum, я использую Gtk-0.9.3 (julia 0.4.3/osx-0.9.5) и все еще имею ту же проблему. - Морис – mdiam