Bir GTK penceresinin görünümünü ve içerdiği tüm düğmeleri ve diğer parçacıkları bir PNG veya PDF dosyasına kaydetmek istiyorum. Kahire böyle yüzeylerde çizim yapmayı destekliyor. Bir şekilde GTK widget'ının kendisini Kahire yüzeyine çekmesini isteyebilir miyim? Bir kod örneği, hem GTK hem de Kahire'nin yeni üyesi olduğum için çok takdir edilecek. Python benim tercihimdir.Kahire yüzeyinin üstünde herhangi bir GTK parçacığı nasıl çizilir?
cevap
C olarak, gtk_widget_reparent()
kullanarak GtkOffscreenWindow
da düğmeler ve widget'lar koymak ve daha sonra daha sonra bir dosyaya kaydedebileceğiniz bir GdkPixbuf
, üzerine işlemek için gtk_offscreen_window_get_pixbuf()
kullanabilirsiniz. Üzgünüz, herhangi bir Python kodum yok, fakat ekran penceresinin PyGTK'de henüz mevcut olduğunu düşünmüyorum.
Ne ptomato diyor. Ekrandan çıkarmanız gerekirse bir Gtk.OffscreenWindow kullanın, aksi takdirde Gdk penceresini ve widget'ı kopyalamak için ayırın. İşte herhangi bir widget'ın anlık görüntüsünü almak için kullanılabilecek bir snippet. Aşağıdaki kodun gösterdiği gibi, bunu Kahire bağlamında oluşturmak için Gtk.Widget.draw() yöntemini de kullanabilirsiniz.
from gi.repository import Gtk
import cairo
WINDOW_WIDTH, WINDOW_HEIGHT = 400, 300
window = Gtk.OffscreenWindow()
window.set_default_size(WINDOW_WIDTH, WINDOW_HEIGHT)
window.show()
canvas = Gtk.HBox()
window.add(canvas)
canvas.show()
button = Gtk.Button("Hello World!")
canvas.add(button)
button.show()
# this is needed, otherwise the screenshot is black:
while Gtk.events_pending():
Gtk.main_iteration()
surf = cairo.ImageSurface(cairo.FORMAT_ARGB32,
WINDOW_WIDTH, WINDOW_HEIGHT)
cr = cairo.Context(surf)
canvas.draw(cr)
surf.write_to_png('test.png')
(ptomato söylediği gibi) geçici olarak anlık yapmak için, bu Gtk.OffscreenWindow bir widget Reparent edebilirsiniz.
original_parent = canvas.get_parent()
canvas.reparent(offscreen_window)
# do snapshot
canvas.reparent(original_parent)
- 1. Her şeyin üstünde bir görünüm nasıl çizilir?
- 2. Matlabdaki bir montaj yüzeyinin hacmini nasıl hesaplayabilirim?
- 3. Kahire Yollarında Boole İşlemleri?
- 4. SDL video yüzeyinin hareket ettirilmesi
- 5. GTK +
- 6. Bir TextView nasıl çizilir?
- 7. Görüntü bir pencerede nasıl çizilir?
- 8. GTK # .NET Uygulama ayrı GTK gerektirmeden # Install
- 9. Bir Basemap'ta dikdörtgenler nasıl çizilir
- 10. plot çizelgesi nasıl çizilir
- 11. JMS kuyruğu nasıl çizilir?
- 12. Şekil nasıl çizilir
- 13. Swt resmi nasıl çizilir?
- 14. ZendendTitBlock nasıl çizilir PDF
- 15. F # etkileşimli olarak varsayılan olarak Gtk # referansı nasıl kullanılır?
- 16. Şeklin üst kısmında x ekseni nasıl çizilir?
- 17. XNA'da belirli bir renkle daire nasıl çizilir?
- 18. kurulum gtk ve glib
- 19. gtk textview
- 20. Bir html5 tuvalinde daire sektörü nasıl çizilir?
- 21. Valada gtk/glade nasıl kullanılır
- 22. GTK + kullanıcı arabirimi testi
- 23. gi.repository ile python'daki Kahire Bölgeleri'ni Kullanma
- 24. GTK Bir iletişimde etiketleme etiketi
- 25. Bir GTK + uygulamasında kaydırma sürükleme
- 26. Eşmerkezli altıgenler nasıl çizilir?
- 27. Resimde metin nasıl çizilir?
- 28. Qt vs GTK + performans
- 29. gtk -Linux, MonoDevelop
- 30. GTK içinde görüntüyü ölçeklendirme