2010-11-18 19 views
3

Ben wxPython deneyimine sahip bir Python programcısıyım ve Haskell'i öğreniyorum ve wxHaskell'de küçük bir GUI projesini kodlamaya devam ediyorum. WxPython'un bir kopyasının nasıl çoğaltılacağını henüz çözemediğim bir özellik PyEmbeddedImage'dır - resimler Python modülleri içinde dizeler olarak saklanabilir ve daha sonra wxPython'dan erişilebilir. Bu işlev wxHaskell'de var mı? Varsa nasıl yapıyorsunuz?wxHaskell'de gömülü görüntüler

Teşekkürler!

+0

GHC'nin sihirli karma sözdizimini içeren bayt dizilerini gömebilirsiniz. Lexer jeneratörü Alex bunu yapıyor. Ne yazık ki, bunu en son baktığımda GHC ile yaptığımın doğru bir tanımını bulamadım (yani, gerçek bir tekniğin mi yoksa bir hack olarak çatlamış mı). Bir Alex lexer oluşturursanız, sonuçta görünen * .hs dosyasına bakmak size sözdizimi gösterecektir. Belki birisi bu teknik hakkında daha iyi bilgiye sahip? –

cevap

2

Gömme dosyasını file-embed kullanmayı deneyebilir ve görüntü oluşturmak için imageCreateFromPixels kullanabilirsiniz.

Kullanım imageGetPixels gömme önce dosyayı hazırlamak için (örneğin kaynak dizinden resim yüklemek ve dosyaya serialize bir wx uygulaması oluşturmak) oldukça Yuras öneri gibi gömme işini otomatik yerine file-embed paketini kullanmak

0

bir testin içine veri.

Bunun nasıl yapıldığını görmek için, compiled constant data structures adresindeki Haskell wiki makalesine bakın (örn. Büyük haritalarda veya diğer veri yapılarında derleme).

bytestring ve -XOverloadedStrings uzantısının kullanımı, sihirli kutulara ayrılmamış değerlere olan ihtiyacı ortadan kaldırır.