[Çözüldü] PyQt4 de xml kaynak dosyası oluşturma.

Başlatan grnt, 28 Şubat 2013 - 11:20:28

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

grnt

İyi günler arkadaşlar. Bir süredir PyQt4 ile arayüz tasarımıyla ilgileniyorum. Bir editör programı yapmaya başladım * her şey gayet güzel gidiyor ancak bir sorum olcak. Program ilerledikçe ikonlar resimler , html sayfaları çoğalmaya başladı. Programın çalışması için sürekli bütün bunları taşımak istemiyorum. Araştırdım ki PyQT kaynak dosyası oluşturma imkanı varmış. Yani bi xml dosyası ile butun hepsini kaynak dosya içerisinde taşıyabiliyormuşuz. Windowsta nasıl yapılacağını buldum ancak Linux dosya hiyerarşisini tam kavrayamadığım için windowsta kullanılan python dosyalarını linuxta bulamadım. Yardımcı olacak kimse var mı acaba? Windows ta şöyle yapılıyormuş.
C:\Python32\Lib\site-packages\PyQt4\bin\pyrcc4.exe -py3\ webduzenleyici.qrc -o qrc_webduzenleyici.py
Burda webduzenleyici.qrc benim oluşturduğum xml dosyası .
Oyunun sonunda şahta piyonda aynı kutuya konur.

heartsmagic

http://stackoverflow.com/a/10951766
Böyle bir örnek var, doğru mu anlıyorum acaba? Eğer böyleyse:

pyrcc4 -o falanca.py falanca.qrc ile oluyor gibi. Tabi buradaki örnek sanırım resim dosyaları için, fakat her şeyi buna uydurmak mümkündür. İşin kod ayağından anlamadığım için ancak bu kadar söyleyebiliyorum. Daha tecrübeli arkadaşlar belki yorum yaparlar.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

egcodes

Merhaba, aşağıda qrc dosyasına bir örnek verdim ve nasıl derleneceğini gösterdim. Derleyebilmek için qt tools(pyrcc4) olması lazım.
Onun için şu paket olsa gerek kurman gerek. (pyqt4-dev-tools)

İyi çalışmalar.

resourceAvatars.qrc dosyası

<!DOCTYPE RCC><RCC version="1.0">
<qresource>
<file>avatars/1.png</file>
<file>avatars/2.png</file>
<file>avatars/3.png</file>
<file>avatars/4.png</file>
<file>avatars/5.png</file>
<file>avatars/6.png</file>
<file>avatars/7.png</file>
<file>avatars/8.png</file>
<file>avatars/9.png</file>
<file>avatars/10.png</file>
<file>avatars/11.png</file>
<file>avatars/12.png</file>
<file>avatars/13.png</file>
<file>avatars/14.png</file>
<file>avatars/15.png</file>
     </qresource>
</RCC>



pyrcc4 resourceAvatars.qrc -o resourceAvatars_rc.py
1f u c4n r34d th1s u r34lly n33d t0 g37 l41d

grnt

#3
Deneme amaçlı bir kaynak dosyası oluşturup pyrcc4 moduyle işleme soktum. Daha sonra kendi programıma da import ettim ancak program açılırken şu hatayı alıyorum. Sebebi nedir acaba

grnt@GIRNATA:~/Masaüstü/DOSYALARIM/Python/PyQt4/Editor Dosyaları$ python3 editor.py
Traceback (most recent call last):
  File "editor.py", line 7, in <module>
    import kaynak_rc
  File "/home/grnt/Masaüstü/DOSYALARIM/Python/PyQt4/Editor Dosyaları/kaynak_rc.py", line 38, in <module>
    qInitResources()
  File "/home/grnt/Masaüstü/DOSYALARIM/Python/PyQt4/Editor Dosyaları/kaynak_rc.py", line 33, in qInitResources
    QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data)
TypeError: qRegisterResourceData(int, str, str, str): argument 2 has unexpected type 'str'




Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 28 Şubat 2013 - 20:50:43

Tekrar iyi akşamlar , bu sorunda kayboldu esrarengiz bir şekilde ancak sorunlar bitmiyor :/  bu arada bu aşamaya kadar yardmcı olan arkadaşlar sağolsunlar.
Şimdi pyrcc4 modulunu kullanırken kaynak kodda yolu belirtilen resmi açamadığını söyleyen bir hata var. Çözebilmiş değilim. Şöyleki:

<!DOCTYPE RCC><RCC version="1,0">
<qresource>
<file alias = "italik.png"> images/italik.png</file>
</qresource>
</RCC>



Şeklindeki kaynak kodu module yolladıgımda ,
Could'nt Open /home/...../images/italik.png
Şeklinde bir hata alıyorum.  Kaynak kod dosyası ile images klasoru aynı dizinde ve images içinde italik.png dosyası mevcut.
Tekrar teşekkürler .
Oyunun sonunda şahta piyonda aynı kutuya konur.

heartsmagic

Orada bir boşluk kalmış "images/italik.png" ifadesinden önce. Acaba sorun yapan o olabilir mi?
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

grnt

Alıntı yapılan: heartsmagic - 01 Mart 2013 - 11:29:02
Orada bir boşluk kalmış "images/italik.png" ifadesinden önce. Acaba sorun yapan o olabilir mi?
Kodu tekrar inceledim , buraya yazarken yanlışlıkla koymuşum o boşluğu , sorun ordan kaynaklanmıyormuş. Ama fark etmemiştim teşekkür ederim.
Oyunun sonunda şahta piyonda aynı kutuya konur.

egcodes

Tekrar merhaba @heartsmagic'in söylediği şeyden kaynaklanıyor olmasın çünkü denedim aynı hatayı aldım boşluk olmadığından emin misiniz?




Eğer yok ona rağmen oluyorsa dosya Path'i ile ilgili bir problem var çünkü hata çıktısı o başka bir şey olamaz gibi geliyor. Bir kez daha kodları ve çıktıları tam olarak aktarırsanız son durumu bi daha inceleyelim. Bir de dosya hiyerarşisiniz tam olarak hangi dosya nerede?


Kolay gelsin.
1f u c4n r34d th1s u r34lly n33d t0 g37 l41d

grnt

grnt@GIRNATA:~$ cd Desktop/DOSYALARIM/Python/PyQt4/Editor\ Dosyaları/
grnt@GIRNATA:~/Desktop/DOSYALARIM/Python/PyQt4/Editor Dosyaları$ pyrcc4 -py3 -o kaynak_rc.py kaynak.qrc
Couldn't open /home/grnt/Desktop/DOSYALARIM/Python/PyQt4/Editor Dosyalar/images/ikon2.png
Couldn't open /home/grnt/Desktop/DOSYALARIM/Python/PyQt4/Editor Dosyalar/images/programikon.png
grnt@GIRNATA:~/Desktop/DOSYALARIM/Python/PyQt4/Editor Dosyaları$

Bunlar terminalde aldığım hata kayıtları.

<!DOCTYPE RCC><RCC version = "1.0">
<qresource>
<file alias="programikon.png">images/programikon.png</file>
<file alias="solayasla.png">images/ikon2.png</file>
</qresource>
</RCC>

Bunlar kaynak.qrc dosyasının kodları. Bulunduğu dizin /home/grnt/Desktop/DOSYALARIM/Python/PyQt4/Editor\ Dosyaları/
images dosyasının dizinide aynı. Editör dosyalarının içinde. Ve İmages klasörümün içinde ikon2.png ve programikon.png resimleri mevcut.
Oyunun sonunda şahta piyonda aynı kutuya konur.

egcodes

Sanırım hata "Editor dosyaları" dizininizin isminde. "dosyaları'nda ki 'ı' karakterini ? olarak görüyor program.


Onu düzeltirseniz sorun çözülür. Türkçe karakter olmasın.


İyi çalışmalar
1f u c4n r34d th1s u r34lly n33d t0 g37 l41d

grnt

Çok yorduk sizide çok sağolun , söylediğiniz gibi dosya dizinindeki Türkçe karakterleri modül görmüyormuş. Sorun halloldu. Teşekkürler
Oyunun sonunda şahta piyonda aynı kutuya konur.