Kivy’nin .py dosyasındaki metnin şeklini degiştirmek için fontlar kullanıyorum ama çalıştırıca hata veriyor. Kendi font dosyası içinde 6 tane font var o dosyaya kullanıcagım fontu atmama ragmen hata veriyor. Bunu nasıl düzeltebilirim?
Kodunuzu ve aldığınız hatayı paylaşabilir misiniz?
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.lang import Builder
kv = """
<main2>:
Label:
id: lbl
markup: True
font_size: 30
"""
class main2(GridLayout):
pass
class main(App):
def build(self):
Builder.load_string(kv)
self.app = main2()
self.app.ids.lbl.text = "[font=Sudden-Desires.ttf] metin_yazısı[/font]"#kullandıgım font (Sudden-Desires.ttf)
return self.app
main().run()
-Kodlar çalışınca aldıgım hata;
[INFO ] [Logger ] Record log in C:\Users\casper\.kivy\logs\kivy_18-07-08_27.txt
[INFO ] [Kivy ] v1.10.0
[INFO ] [Python ] v3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:54:40) [MSC v.1900 64 bit (AMD64)]
[INFO ] [Factory ] 194 symbols loaded
[INFO ] [Image ] Providers: img_tex, img_dds, img_sdl2, img_pil, img_gif (img_ffpyplayer ignored)
[INFO ] [OSC ] using <thread> for socket
[INFO ] [Window ] Provider: sdl2
[INFO ] [GL ] Using the "OpenGL" graphics system
[INFO ] [GL ] GLEW initialization succeeded
[INFO ] [GL ] Backend used <glew>
[INFO ] [GL ] OpenGL version <b'4.4.0 - Build 20.19.15.4300'>
[INFO ] [GL ] OpenGL vendor <b'Intel'>
[INFO ] [GL ] OpenGL renderer <b'Intel(R) HD Graphics'>
[INFO ] [GL ] OpenGL parsed version: 4, 4
[INFO ] [GL ] Shading version <b'4.40 - Build 20.19.15.4300'>
[INFO ] [GL ] Texture max size <16384>
[INFO ] [GL ] Texture max units <32>
[INFO ] [Shader ] fragment shader: <b"WARNING: 0:7: '' : #version directive missing">
[INFO ] [Shader ] vertex shader: <b"WARNING: 0:7: '' : #version directive missing">
[INFO ] [Window ] auto add sdl2 input provider
[INFO ] [Window ] virtual keyboard not allowed, single mode, not docked
[INFO ] [Text ] Provider: sdl2
[INFO ] [Base ] Start application main loop
[INFO ] [Base ] Leaving application in progress...
Traceback (most recent call last):
File "C:\Users\casper\Desktop\gfd.py", line 28, in <module>
main().run()
File "C:\Users\casper\AppData\Local\Programs\Python\Python36\lib\site-packages\kivy\app.py", line 828, in run
runTouchApp()
File "C:\Users\casper\AppData\Local\Programs\Python\Python36\lib\site-packages\kivy\base.py", line 504, in runTouchApp
EventLoop.window.mainloop()
File "C:\Users\casper\AppData\Local\Programs\Python\Python36\lib\site-packages\kivy\core\window\window_sdl2.py", line 663, in mainloop
self._mainloop()
File "C:\Users\casper\AppData\Local\Programs\Python\Python36\lib\site-packages\kivy\core\window\window_sdl2.py", line 405, in _mainloop
EventLoop.idle()
File "C:\Users\casper\AppData\Local\Programs\Python\Python36\lib\site-packages\kivy\base.py", line 339, in idle
Clock.tick()
File "C:\Users\casper\AppData\Local\Programs\Python\Python36\lib\site-packages\kivy\clock.py", line 581, in tick
self._process_events()
File "kivy\_clock.pyx", line 367, in kivy._clock.CyClockBase._process_events (kivy\_clock.c:7700)
File "kivy\_clock.pyx", line 397, in kivy._clock.CyClockBase._process_events (kivy\_clock.c:7577)
File "kivy\_clock.pyx", line 395, in kivy._clock.CyClockBase._process_events (kivy\_clock.c:7498)
File "kivy\_clock.pyx", line 167, in kivy._clock.ClockEvent.tick (kivy\_clock.c:3490)
File "C:\Users\casper\AppData\Local\Programs\Python\Python36\lib\site-packages\kivy\uix\label.py", line 365, in texture_update
self._label.refresh()
File "C:\Users\casper\AppData\Local\Programs\Python\Python36\lib\site-packages\kivy\core\text\__init__.py", line 670, in refresh
sz = self.render()
File "C:\Users\casper\AppData\Local\Programs\Python\Python36\lib\site-packages\kivy\core\text\markup.py", line 121, in render
ret = self._pre_render()
File "C:\Users\casper\AppData\Local\Programs\Python\Python36\lib\site-packages\kivy\core\text\markup.py", line 205, in _pre_render
self.resolve_font_name()
File "C:\Users\casper\AppData\Local\Programs\Python\Python36\lib\site-packages\kivy\core\text\__init__.py", line 285, in resolve_font_name
raise IOError('Label: File %r not found' % fontname)
OSError: Label: File 'Sudden-Desires.ttf' not found
font yolunu belirmeniz lazım
self.app.ids.lbl.text = "[font=data/fonts/Roboto-Regular.ttf] metin_yazısı[/font]"
Ne yazıkki Çalışmadı
eğer bahsetriğiniz dizinde o font varsa çalışmaması imkansız. dizini kontrol edin, dizin yolunu eksizi girin. mutlaka çalışacaktır. Ayrıca bahsettiğiniz dizini ben kontrol ettiğimde yukarda tanıttığınız fontu içinde bulamadım, Robotyo-Regular fontu ile deneme yapın eğer yine olmazsa font yolunu yanlış giriyorsunuzdur muhtemelen.
Yazım hataları için kusura bakmayın, telefondan yazıyorum…
Yanlız ben kivy nin kendi fontlarını degil kendi ekledigim fontların da çalışmasını istiyorum.
Kendi fontunu tabiki de kullanabilirsin. yapman gereken fontu proje klasörüne atmak ve sadece ismiyle çağırmak.
örneğin:
Label:
font_name: "benim_fontum.ttf"
Çok saolun çalışdı. Yanlız paketleme sırasın da bir hata çıkmasın. çünkü derleyecegim zaman hata verebilir.
Buildozer’da şu satıra uzantıyı eklemeyi unutmazsan hata vermez
# (list) Source files to include (let empty to include all the files)
source.include_exts = 'py,png,jpg,kv,atlas,ttf,otf'
Çok saolun. Ama bir soru daha sorucam.