Python da anlayamadigim hatalar ve cozumleri

Başlatan z, 23 Nisan 2020, 17:27:10

z

Ornegin Radiobutton kullanalim.

https://www.tutorialspoint.com/python/python_gui_programming.htm

sayfasindan Radiobuttonla ilgili asagidaki sayfaya geciyorum.

https://www.tutorialspoint.com/python/tk_radiobutton.htm

option kisminda font parametresi oldugunu goruyorum ve

asagidaki dizilimi yapiyorum.

R1 = Radiobutton(root, text="0.1 mm", variable=var, value=1, command=Sel)

Hatasiz calisiyor.

Fakat fontu da degistirmek icin

R1 = Radiobutton(root, text="0.1 mm", variable=var, value=1, font=("Helvetica", 20, 'bold'),command=Sel)

yapiyorum.

Kodu calistirmak istedigimde _tkinter.TclError: unknown option "-font" hatasi aliyorum.

Halbuki font parametresi yukaridaki linkte olabilir eklenebilir goruluyor.

Nerde yanlis yapiyorum?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

bsenguler


robikod

#2
Merhaba, aşağıdaki gibi deneyebilir misiniz ?

Python 3 için:
from tkinter import *  
from tkinter import font as tkFont 

MyHelvetica=tkFont.Font(family='Helvetica', size=20, weight='bold')

R1 = Radiobutton(root, text="0.1 mm", variable=var, value=1, font=MyHelvetica,command=Sel)

Python 2 için: (Büyük harfe dikkat)
from Tkinter import *  
import tkFont

z

Asagidaki hatalari aliyorum

Ilk durum icin

Traceback (most recent call last):
  File "C:/Users/Bulent/PycharmProjects/Deneme/MyProg.py", line 6, in <module>
    MyHelvetica=tkFont.Font(family='Helvetica', size=20, weight='bold')
  File "C:\Users\Bulent\AppData\Local\Programs\Python\Python37\lib\tkinter\font.py", line 93, in __init__
    tk.call("font", "create", self.name, *font)
AttributeError: 'NoneType' object has no attribute 'call'

--------------------------------------

Ikinci durum icin

Traceback (most recent call last):
  File "C:/Users/Bulent/PycharmProjects/Deneme/MyProg.py", line 2, in <module>
    import tkFont
ModuleNotFoundError: No module named 'tkFont'

Process finished with exit code 1
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

robikod

Alıntı yapılan: z - 23 Nisan 2020, 17:56:37Asagidaki hatalari aliyorum

Ilk durum icin

Traceback (most recent call last):
  File "C:/Users/Bulent/PycharmProjects/Deneme/MyProg.py", line 6, in <module>
    MyHelvetica=tkFont.Font(family='Helvetica', size=20, weight='bold')
  File "C:\Users\Bulent\AppData\Local\Programs\Python\Python37\lib\tkinter\font.py", line 93, in __init__
    tk.call("font", "create", self.name, *font)
AttributeError: 'NoneType' object has no attribute 'call'

--------------------------------------

Ikinci durum icin

Traceback (most recent call last):
  File "C:/Users/Bulent/PycharmProjects/Deneme/MyProg.py", line 2, in <module>
    import tkFont
ModuleNotFoundError: No module named 'tkFont'

Process finished with exit code 1

Şimdi sizin ilk başta çalıştığınız komutu denedim:
R1 = Radiobutton(root, text="0.1 mm", variable=var, value=1, font=("Helvetica", 20, 'bold'),command=Sel)

burada root, command, variable değişkenlerini kaldırdım. Nasıl tanımladığınızı bilmiyorum kodun mevcut haline göre.

Python3 ile aşağıdaki satırda hiç hata almadım. Font kısmında bir hata olmayabilir belki.
from tkinter import *

R1 = Radiobutton( text="0.1 mm", value=1, font=("Helvetica", 20, 'bold'))

mehmet

#5
sel() fonksiyonu küçük harflerle yazılmış...

from tkinter import *

def sel():
  selection = "You selected the option " + str(var.get())
  label.config(text = selection)

root = Tk()
var = IntVar()

#R1 = Radiobutton(root, text="Option 1", variable=var, value=1, command=sel)#"Sel" değil...

R1 = Radiobutton(root, text="0.1 mm", variable=var, value=1, font=("Helvetica", 20, 'bold'),command=sel)
R1.pack( anchor = W )

R2 = Radiobutton(root, text="Option 2", variable=var, value=2, command=sel)
R2.pack( anchor = W )

R3 = Radiobutton(root, text="Option 3", variable=var, value=3, command=sel)
R3.pack( anchor = W)

label = Label(root)
label.pack()
root.mainloop()

Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

z

#6
Bendeki o zaman Python 2. Cunku sizin yaptiginiz gibi denedigimde gene font icin unkown option  diye hata veriyor.

Emin olmak icin bendekinin versiyonunu nerden ogrenebilirim.

Pycharm programini kurdum bana versiyon vs sormadi.

------------------

@mehmet

Sanirim bnim versiyonla ilgili sorunum var.

Ordaki Seli buyuk yazip fonskiyonun adini da Sel koydum.
kucuk yazarsam  fonksiyon adini da kucuk yaziyorum.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

mehmet

Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

z

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

mehmet

Kodun en başına
# -*- coding: utf-8 -*-

try:
	from tkinter import *
except:
	from Tkinter import *
eklerseniz pek sorun yaşamazsınız...
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

robikod

Demek ki font kısmı doğruymuş  :)

File -> Settings-> Projet: (projectName) ->Python Interpreter buradan bakabilirsiniz

mehmet

Version da başta yazar...

try:
	from tkinter import *
except:
	from Tkinter import *

import sys

def sel():
   selection = "You selected the option " + str(var.get())
   label.config(text = selection)

root = Tk()
var = IntVar()

ver = sys.version

L1 = Label(root, text=ver)
L1.pack(anchor = W)

#R1 = Radiobutton(root, text="Option 1", variable=var, value=1, command=sel)

R1 = Radiobutton(root, text="0.1 mm", variable=var, value=1, font=("Helvetica", 20, 'bold'),command=sel)
R1.pack( anchor = W )

R2 = Radiobutton(root, text="Option 2", variable=var, value=2, command=sel)
R2.pack( anchor = W )

R3 = Radiobutton(root, text="Option 3", variable=var, value=3, command=sel)
R3.pack( anchor = W)

label = Label(root)
label.pack()
root.mainloop()
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

z

Alala versiyonum 3 o zaman

Versiyonum 3.77 (tags/v3.7.7........... [MSC v.1900 64 Bit (AMD64)] imis.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

Mumkunse www.picproje.org/index.php/topic,77428.msg592895 bu mesajdaki kodlara bir bakarmisin?

Kodlarimi bunun uzerine insa edecegim.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

tkinter kullanarak

form üzerine bir kaç tane radiobutton yerleştiriyorum.

Ancak bunların hepsi de uncheck durumunda görünüyor. Bunlardan istediğim birisini program çalıştığında karşımda check edilmiş görmek istiyorum.

Yani default seçim yapılmış olmalı. Beğenmezsem tıklayarak seçim yapabilmeliyim.

Radiobutton'un yazılımla check edili hale getirilmesi nasıl olacak?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com