Picproje Elektronik Sitesi

PROGRAMLAMA DİLLERİ => Python => Konuyu başlatan: z - 23 Nisan 2020, 17:27:10

Başlık: Python da anlayamadigim hatalar ve cozumleri
Gönderen: z - 23 Nisan 2020, 17:27:10
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?
Başlık: Ynt: Python da anlayamadigim hatalar ve cozumleri
Gönderen: bsenguler - 23 Nisan 2020, 17:31:11
Python'unu versiyonu farklı olabilir.
Başlık: Ynt: Python da anlayamadigim hatalar ve cozumleri
Gönderen: robikod - 23 Nisan 2020, 17:40:40
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
Başlık: Ynt: Python da anlayamadigim hatalar ve cozumleri
Gönderen: z - 23 Nisan 2020, 17:56:37
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
Başlık: Ynt: Python da anlayamadigim hatalar ve cozumleri
Gönderen: robikod - 23 Nisan 2020, 18:04:36
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'))
Başlık: Ynt: Python da anlayamadigim hatalar ve cozumleri
Gönderen: mehmet - 23 Nisan 2020, 18:14:09
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()

(https://i.ibb.co/4F8fqsX/Ekran-g-r-nt-s-2020-04-23-18-11-59.png) (https://ibb.co/4F8fqsX)
Başlık: Ynt: Python da anlayamadigim hatalar ve cozumleri
Gönderen: z - 23 Nisan 2020, 18:14:24
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.
Başlık: Ynt: Python da anlayamadigim hatalar ve cozumleri
Gönderen: mehmet - 23 Nisan 2020, 18:18:08
Terminalde;
python --version
Başlık: Ynt: Python da anlayamadigim hatalar ve cozumleri
Gönderen: z - 23 Nisan 2020, 18:20:31
Su anda PC de win10 altinda calisiyorum.

Başlık: Ynt: Python da anlayamadigim hatalar ve cozumleri
Gönderen: mehmet - 23 Nisan 2020, 18:22:23
Kodun en başına
# -*- coding: utf-8 -*-

try:
from tkinter import *
except:
from Tkinter import *
eklerseniz pek sorun yaşamazsınız...
Başlık: Ynt: Python da anlayamadigim hatalar ve cozumleri
Gönderen: robikod - 23 Nisan 2020, 18:22:29
Demek ki font kısmı doğruymuş  :)

File -> Settings-> Projet: (projectName) ->Python Interpreter buradan bakabilirsiniz
Başlık: Ynt: Python da anlayamadigim hatalar ve cozumleri
Gönderen: mehmet - 23 Nisan 2020, 18:31:42
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()
Başlık: Ynt: Python da anlayamadigim hatalar ve cozumleri
Gönderen: z - 23 Nisan 2020, 18:38:20
Alala versiyonum 3 o zaman

Versiyonum 3.77 (tags/v3.7.7........... [MSC v.1900 64 Bit (AMD64)] imis.
Başlık: Ynt: Python da anlayamadigim hatalar ve cozumleri
Gönderen: z - 23 Nisan 2020, 18:40:09
Mumkunse www.picproje.org/index.php/topic,77428.msg592895 bu mesajdaki kodlara bir bakarmisin?

Kodlarimi bunun uzerine insa edecegim.
Başlık: Ynt: Python da anlayamadigim hatalar ve cozumleri
Gönderen: z - 24 Nisan 2020, 08:31:38
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?