2014-11-17 14 views
6

GTK3'ü kendi başıma öğrendim ve şimdi Gtk.DrawingArea'da takılıyorum. GTK'daki çoğu widget ve fonksiyonda olduğu gibi, bu konuda güncellenmiş dokümantasyon ve eğitim eksiklikleri var gibi görünüyor.GTK3 Çizim alanı öğretici var gibi görünmüyor mu?

http://lazka.github.io/pgi-docs/Gtk-3.0/classes/index.html

çizim alanı sayfası açıklanan yöntemleri yoktur Ancak: ne buldum olarak referans (umarım bu diğer bazı kayıp Google'cılara yardımcı olacaktır) için, lazka otomatik oluşturulan belgeler benim en iyi kaynak olmuştur.

http://lazka.github.io/pgi-docs/Gtk-3.0/classes/DrawingArea.html

Bu benim GTK ve bu aletin temel bir yanlış anlama olduğunu beni inandıramaz ama bunu nasıl çalışılacağını anlatan bir şey bulamıyorum! Bulamadığım tek dersler bunlardı, ama hepsi eski versiyonlar için;

3 bu kılavuzu en iyisi, ama dürüstçe GTK3 çalışmak için görünmektedir ve olamaz onun oldukça gelişmiş. Birkaç şey de kaldırıldığını ve değiştirmeler oldukça şifreli gibi görünüyor ve onlar DrawingArea nasıl çalıştığını belirsiz: Resmi öğretici üzerinde bir bölüme sahip olmayan http://lazka.github.io/pgi-docs/Gtk-3.0/classes/Widget.html#Gtk.Widget.set_style

ve anlamlı bir uzun güncellenmedi süresi:

http://python-gtk-3-tutorial.readthedocs.org/en/latest/objects.html

https://github.com/sebp/PyGObject-Tutorial

sorum şimdi biri bana Gtk.DrawingArea ile nasıl çizileceğini anlamamıza yardımcı olabilir olup olmadığıdır? Orada bir gtk3 öğretici var mı?

Şu anki hedefim, algoritmanın çıktısına dayalı olarak çizim alanında otomatik olarak siyah noktalar çizmek ve sonuçları görüntülemek. Kodumu gösterirdim ama hiçbir şeyim yok. Temelde :: draw sinyaline bağlanır ve pycairo kullanarak işleyiciye çizersiniz.

+0

Not bakın! Sadece "draw" sinyalinde çizebilmeniz için tüm özellikleri ayarlanmış boş bir widget. – ptomato

+0

İlginç! Bir süredir çekiş sinyali ile uğraştım, bir geri çağırma (on_draw) ile bağlantı kurduğumda, sinyalin yapışacağı ve geri dönüşün bir döngüde etkili olduğunu fark ettim! İstediğimde işleyici kimliğini engelini kaldırarak çalıştım ve geri aramanın sonunda onu engelliyordum ama bunun doğru yolu olduğunu sanmıyorum. Özel sinyaller veya başka tavsiyelerde bulunmak için daha fazla okumuş musunuz? Ayrıca tek bir piksel yazmak için cairo.context içinde bir yöntem biliyor musunuz? En yakınım çok küçük bir kare yapıyordu. – Swashy

+0

Başka sorularınız varsa, yeni bir soru açmak en iyisidir, böylece herkes cevap verme şansına sahip olur, ancak - Widget'ın yeniden çizilmesi gerektiğinde çekim sinyali çıkarılmalıdır. (Bir şey çizildikten sonra, unutulur, ve eğer başka bir pencere üstünden geçerse, onu yeniden çizmeniz gerekir.) Ve Kahire piksellerle ilgilenmiyor, bu yüzden elde etmeye çalıştığınız şeye bağlı olarak küçük bir kare muhtemelen doğrudur. – ptomato

cevap

7

Yeniden çizmek istiyorsanız queue_draw/queue_draw_area() öğesini kullanın.

GtkDrawingArea` gerçekten herhangi yöntemi yok `o örnekler için http://zetcode.com/gfx/pycairo/basicdrawing/

+1

Whoa lazka kendini! Teşekkürler, tam da aradığım şey bu. – Swashy

İlgili konular