Lineedite int değer girme

İyi günler kullanıcıdan qlineditlerle int değer almak için setvalidator argümanını kullandım fakat aldığım değerleri nonetype olarak sınıflandırıyor nasıl halledebilirim teşekkürler.

import sys 

from PyQt5 import QtWidgets 

from PyQt5.QtWidgets import *

from PyQt5.QtGui import QIntValidator

from py import * 

Uygulama = QApplication(sys.argv)

AnaPencere = QMainWindow()

ui = Ui_MainWindow()

ui.setupUi(AnaPencere)

AnaPencere.show()

#-------------------HESAPLA---------------#

ui_boy = ui.boy_line_2.setValidator(QIntValidator(0,200))

ui_kilo = ui.kilo_line_2.setValidator(QIntValidator(0,200))

ui_yas = ui.yas_line.setValidator(QIntValidator(0,200))

 def HESAPLA():

    günlük_kalori = 66 + (10 * ui_kilo) + (2 * ui_boy) - (5 * ui_yas) 

    

ui.pushButton.clicked.connect(HESAPLA)

sys.exit(Uygulama.exec_())

Bir LineEdite int değer girmeyi zamanında ben de denedim. Validator’lara vs. rastladım ancak hiçbir şekilde lineEditlere int değer atanamayacağı sonucuna ulaştım. Ben de işimi str() ve int() fonksiyonları ile çözdüm. Size de öyle yapmanızı öneriyorum.
Her türlü iş görürler zaten bu konuda

1 Beğeni
ui_boy = int(ui.boy_line_2.text())

ui_kilo = int(ui.kilo_line_2.text())

ui_yas = int(ui.yas_line.text())

kısımlarını bu şekilde değiştirdim fakat IndentationError: unexpected indent şeklinde hata alıyorum pek çıkamadım işin içinden :smiley:

Bu hata kodlarınızı nasıl yazdığınızla değil nereye yazdığınızla alakalı. Hatada ne demek istediğini hiç araştırdınız mı ? “Indentation” girinti demektir. Girintiden kasıt da mesela şu oluyor :

def addition(num1, num2):
return num1 + num2

Bir fonksiyonun nasıl tanımlanacağını biliyor olmalısınız. Bu yukarıdaki toplama fonksiyonu da girinti hatasından dolay çalışmayacaktır. Hatta isterseniz alıp deneyebilirsiniz. Yine size IndentationError hatası yükseltecektir. Çünkü return deyimi yanlış girintilenmiş.
Bir TAB kadar boşluk bırakıldıktan sonra return deyimi kullanılmalıydı.
Yani böyle :

def addition(num1, num2):
    return num1 + num2

Kısacası girinti, boşluklar demek oluyor ve siz kodlarınızı yanlış yazdığınız için değil, yanlış girintilediğiniz -boşluk bırakırken bir hata yaptığınız- için hata alıyorsunuz.



Eğer bıraktığınız kodlar, metin editörünüzde yazdığınız kodlarla tıpatıp aynı ise şurada bir girinti hatası görüyorum mesela :

def bir boşluk(space) sonra yazılmış. Ancak buraya kodlarınızı yapıştırırken bir hata da olmuş olabilir tabii ki o yüzden hemen yorum yapmak istemedim.
Mesela :

 def addition(num1, num2):
    return num1 + num2

Sizinki gibi deften önce bir boşluk bırakırsam bu kodlar da aynı hatayı yükseltir.

1 Beğeni

metin editörümde fonkisonu fazladan bir boşluk bırakarak yazmışım sorunu hallettim teşekkürler :slightly_smiling_face:

1 Beğeni

Benzer bir konuyu araştıracak birisinin aradığı yanıta daha kolay ulaşabilmesini sağlamak için işinize yarayan yanıtı “çözüldü” olarak işaretlemeyi unutmayın. Kolay gelsin :heart:

1 Beğeni