Uygulamanın bir soketten veri okumasını sağlamaya çalışıyorum ama biraz zaman alıyor ve arabirimi kilitliyor, beklerken tk olaylarına nasıl yanıt verebilirim?Soket verisi beklenirken titrek olaylar nasıl oluşturulur?
5
A
cevap
9
Thats is easy! Ve hatta dişlere ihtiyacınız yok! Ancak, G/Ç kodunuzu biraz yeniden yapılandırmanız gerekecek. Tk, Xt’in XtAddInput() çağrısına eşdeğerdir; bu, bir dosya tanıtıcısında I/O mümkün olduğunda, Tk ana dizininden çağrılacak bir geri arama işlevini kaydetmenize olanak tanır. İşte gerekenler:
from Tkinter import tkinter
tkinter.createfilehandler(file, mask, callback)
dosya bir Python dosya veya soket nesnesi (aslında, bir fileno() metodu ile bir şey) ya da bir tamsayı dosya tanıtıcı olabilir. Maske sabitler tkinter biridir.READABLE veya tkinter.WRITABLE. aşağıdaki gibi geri arama denir: Eğer okuma için kullanılabilir kaç bayt seni tanımıyorum tarihi:
tkinter.deletefilehandler(file)
Not kullanarak bitince geri arama kaydı gerekir
callback(file, mask)
, Python dosya nesnesinin read veya readline yöntemlerini kullanamazsınız, çünkü bunlar önceden tanımlanmış bir bayt sayısını okumakta ısrar edecektir. Soketler için recv() veya recvfrom() yöntemleri iyi çalışır; Diğer dosyalar için,
os.read(file.fileno(), maxbytecount).
kullanın
İlgili konular
- 1. Beklenirken Hata
- 2. F # ile .NET uyumlu olaylar nasıl oluşturulur?
- 3. Dotnet ile bir jpg dosyasında yalnızca görüntü verisi nasıl oluşturulur?
- 4. Sunucu Gönderilen Olaylar, parametre
- 5. Uzantıdaki olaylar nasıl izlenir?
- 6. JavascriptError: javascript hatası: sonucu beklenirken belge kaldırılırken
- 7. Soket protokolü tanımlayamıyor (soket sızıntısı)
- 8. Opencv ile titrek bir kamera nasıl taklit edilir?
- 9. javascript internals: olaylar nasıl uygulanır?
- 10. ekleme olaylar
- 11. Tetik olaylar
- 12. Stil verisi bağları nasıl kullanılır?
- 13. SSL Sertifika verisi nasıl temizlenir
- 14. Gönderilmemiş form verisi nasıl hatırlanır?
- 15. Görüntü verisi,
- 16. (How) Soket tipini soket tanımlayıcısından bulabilir miyim?
- 17. Flux'te soket bağlantısı nasıl iletilir?
- 18. Android Takvim Olaylar
- 19. JSpinner Değer değişikliği Olaylar
- 20. Yayan olaylar küresel
- 21. Ractive.js preventDefault olaylar
- 22. JSDoc - belgeleyen olaylar
- 23. VB.NET'e abone olunan olaylar
- 24. Omurga Özel Olaylar
- 25. Olaylar bir zincirleme reaksiyon
- 26. GWT'deki mantıksal olaylar ve yerel olaylar arasındaki fark nedir?
- 27. Yinelenen Olaylar, SQL Sorgu
- 28. Firebase Sağlayıcı Verisi
- 29. hangi olaylar var?
- 30. WPF - Bir ControlTemplate'deki Olaylar?
Bu, Tk'nın gerçekten çok mükemmel özelliklerinden biridir - bir dosya okunurken bir olayın alınması soket işlemeyi çok kolaylaştırır. –