Label Widgetinde Çok Uzun Yazıların Boyutlarını Ayarlama


#1

Merhabalar, kivymd kullanıyorum.bir sözlük uygulaması yapmaya çalışıyorum.Yaptıgım şey şu,kullanıcıdan kelimeyi alıyorum,anlamını aşağıd a belirtiyorum.Ama sorun şu,kısa kelimelerde sorun olmazken uzun kelimelerde aşagıdaki sorun meydana geliyor:

Kelime arattırmadan önce:

Kelime arattırdıktan sonra:

Yazdıgım kodun bir bölümü bu:

[...]
                        ScrollView:
                            BoxLayout:
                                orientation: "vertical"
                                size_hint_y: None
                                height: self.minimum_height
                                padding: dp(48)
                                spacing: 100
                        
                        
                                MDTextField:
                                    id: arama_bar_tdk
                                    hint_text: "enter word"
                                
                                MDRaisedButton:
                                
                                    text: "Ara"
                                    elevation_normal: 2
                                    opposite_colors: True
                                    pos_hint: {'center_x': 0.5}
                                    on_press: app.search(arama_bar_tdk, sonuc_tdk)
                        
                                MDLabel:
                                    id: h
                                BoxLayout:
                                    orientation: "vertical"
                            
                                    MDLabel:
                                        id: sonuc_tdk
                                        text: "Görüntülenecek Sonuç Yok"

[...]

Kısaca sorun şu, buradaki mdlabel widgetini kullanarak yazıyı nasıl daha guzel gosterebilirim?

Burada da sordum:


#2

Basit olucak ama ginede yazım. :slight_smile:
Labelin kendi rengini, metnin rengini, metnin yazı biçimini, degiştirebilirsin veya, Label etrafına bir çerçeve yapabilirsin.


#3

Kelimeyi aradıkdan sonra başka bir sayfada anlamını gösterse. :slight_smile:


#4

Bunları html etiketlerine göre düzenleseniz. Yani bir siteden çektiğinize göre html etiketleri olmalı.


#5

Evet, iki tane siteden veri çekmekteyim.

Burada demek istediğinizi anlayamıyorum, ne demeye çalışıyorsunuz?Zaten küçük metinlerde hiç sorun yaşamadım.

Ama metin büyüyünce sıkıntı oluyor.

Olmaz öyle, güzel olmaz.

Kodlar açık kaynak kodlu,ama guncellemem lazım, guncelleyince edit olarak bildiririm.


#6

Cihat daha önce hiç kivymd kullanmadım ama neden label’ı scrollview içine almıyorsun. Yazı büyüdükçe kullanıcı kalan kısmı okumak için metni kaydırır, taşma da olmaz.


#7

Siz mdlabel yerine label olarak farzedin.

Ama bir sorum var.Ne yazık ki scrollview içinde labeli kullanamadım.Biraz örnek gösterseniz cidden çok işime yarayacak.Çok araştırdım, bulamadım.

Yine de cevabınız beni çok mutlu etti,çok teşekkürler.


#8

Hocam allah razı olsun çözümü buldum gibi,tam bulunca atarım,%90 yaklaştım.

Edit: Entegre edemedim, ustteki örnek isteğim hala geçerli, teşekkürler gerçekten.


#9
ScrollView:
	size_hint: (.95,.5)
	pos_hint: {'center_x':.5,'center_y':.5}
	Label:
		text: 'yunus ceyhan'*300
		size_hint_y: None
		text_size: self.width, None
		height: self.texture_size[1]

#10

Çözüm:

https://paste.ubuntu.com/p/k2sjWmJjTV/

Buyurun bu kod size bir fikir verebilir, ama bence github hesabına bakın.Çünkü proje tek dosyadan oluşmuyor.

Anlayamadığınız bölümü lütfen sorun.

Teşekkürler @Ethnic hocam


#11

Cihat kod’a biraz göz attım, örneğin bs4, robobrowser kullanmışsın ama eğer ilerde bunu apk’ya çevirisen hem uygulamanın boyutu artabilir hemde paketlemede sorunlar yaşayabilirsin. Evet bu kütüphaneler kolaylaştırıcı olabilir ama benim tavsiyem web scraping için regex kullanman.


#12

Merhaba @Ethnic bey

Robobrowser i tag parselleme için değil, tdk dan kullanıcının aradığı kelimenin anlamını almak için kullandım.

Sizin deneyimleriniz bana çok yardımcı oluyor, gerçekten teşekkür ederim.Uygulayabildiğim kadarıyla uygulayacağım.Yardımlarınız için çok teşekkurler

Edit: pardon cevap geç geldi.Bir iletişimsizlik oldu.