Canvas üzerinde birbirine bağlanabilen nesneler (şekiller) oluşturma

Merhaba
Bir çok yerde flowchart, node konseptini görmüşsünüzdür
(Blender Node editor
Flowchart
Ben de bu şekilde canvas üzerinde nesneler yaratıp bunları fare ile bir noktadan sürükleyip birbirleri ile bağlamak istiyorum. Kullanıcı arayüz üzerinde bir tuşa basacak ve canvas üzerinde bir şekil çıkacak. Bir daha aynı tuşa ya da farklı bir tuşa bastığında aynı tip ya da farklı tip bir şekil oluşacak. Şeklin kenarına ya da bir “hotspot” una bastığında bir link/bağ oluşturma moduna girecek ve bu link/bağ sürüklenip diğer nesneye dokunulduğunda aralarında bir çizgi/eğri oluşup bu 2 nesne ilişkilendirilmiş olacak. Programın sonunda çizilmiş olan bu nesneleri ve bağlantılarını xml ya da başka formatta kaydedeceğim. Aynı şekilde kaydedilmiş dosyayı okuttuğumda program canvas üzerinde bunu çizecek.
Anlattığıma benzer bir tutorial ya da bir örnek gördüyseniz beni yönlendirirseniz sevinirim. Hazır koda gerek yok, öğrenmek iyidir. varsa da olur. Ya da beni kivy (ya da tavsiye edecbileceğiniz başka bir arayüz frameworkünde) ilgili konuya yönlendirirseniz de olur.

Teşekkürler

Tutorial olamayacak kadar fazla spesifik bir konu. (Eger tam bu isi yapan bir library’nin “nasil kullanirim” tutorial’i yoksa) Kivy veya baska herhangi bir arayuz kutuphanesini kullanmis biri icin de fazla kolay.

Kivy’de drag+drop, cizgi/kare cizme, vs. biliyorsan: Nerede takildin?
Bilmiyorsan: Neden oradan baslamiyorsun?

Merhaba
Ben sadecenesneler arası ilişkilendirmeyi hangi mantıkla yapabilirim diye düşünmekteyim. Kivyde nesne/şekil oluşturmak kolay da ona parent/child ilişkisini nasıl tanımlayabilirim diye düşünüyorum.
PyQtGraph sayfasında sağ altta hızlı prototip yaratmak için flowchart örneği var. Bunu biraz araştırıp kivyde oluşturabilir miyim diye düşünmem lazım sanırım

Ben olsam Node ve Edge siniflariyla baslarim. Node’da bagli oldugu Edge, Edge’de de bagli oldugu 2 Node tutarim.

Sonra Port gelir; Node’da Port listesi, Port’ta da Node ve Edge referanslari olabilir. (Node->Edge gider, Edge->Node[2] da Edge->Port[2] olur.)

Tum graph’i tutmak icin ise Node listesi + Edge listesi kullanilabilir.

1 Beğeni