انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید

نویسنده موضوع: مشکل در اجرا شدن کد در پایتون در کتابخانه ی tkinter(برنامه نویسی گرافیکی پایتون)  (دفعات بازدید: 1597 بار)

0 کاربر و 2 مهمان درحال مشاهده موضوع.

آفلاین قاسم طلایی

  • Full Member
  • *
  • ارسال: 122
  • جنسیت : پسر
با سلام خدمت شما دوستان گرامی
من به تازگی برنامه نویسی پایتون رو شروع کردم و با استفاده از کتابخانه ی tkinter یک برنامه ی بسیر ساده نوشتم.ولی وقتی کد رو اجرا می کنم و روی کلید کلیک می کنم ارور میده.کد رو در زیر ببینید.
#include
from tkinter import *
#information of app
app=Tk()
app.title("Ghasem Talaee")
app.geometry('800x500')
#label
lbl=Label(app,text="welcome to my first app:",font=("Arial",25)).grid(column=0,row=0)
#input from user
global txt
txt=Entry(app,width=20,font=("Arial",20)).grid(column=1,row=0)
def clicked():
    res="button was cliced and print text box:" + txt.get()
    lbl=Label(app,text=res).grid(column=0,row=1)
#button
btn=Button(app,text="click",padx=20,font=("Arial",17),bg="orange",fg="red",command=clicked).grid(column=2,row=0)
app.mainloop()
و اورو زیر رو میده
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Program Files\Python36\lib\tkinter\__init__.py", line 1702, in __call__
    return self.func(*args)
  File "D:\my project\python\gui\gui1.py", line 13, in clicked
    res="button was cliced and print text box:" + txt.get()
AttributeError: 'str' object has no attribute 'get'

ممنون میشم راهنمایی بفرمایید.با تشکر
« آخرین ویرایش: 16 تیر 1397، 05:30 ب‌ظ توسط قاسم طلایی »

آفلاین mahdi7d1

  • Jr. Member
  • *
  • ارسال: 77
  • جنسیت : پسر
پاسخ : مشکل در اجرا شدن کد در پایتون
« پاسخ #1 : 16 تیر 1397، 12:46 ب‌ظ »
طبق چیزی که توی ارور نوشته توی خط سیزدهم نوشتی txt.get() در حالی که اون اسم به یه استرینگ اشاره داره ولی کلاس استرینگ متدی به اسم get نداره. من تا حالا با tkinter کار نکردم ولی چیزی که گفتم درباره استرینگ صادقه و به سادگی از روی متن ارور فهمیده میشه.

آفلاین قاسم طلایی

  • Full Member
  • *
  • ارسال: 122
  • جنسیت : پسر
پاسخ : مشکل در اجرا شدن کد در پایتون
« پاسخ #2 : 16 تیر 1397، 12:55 ب‌ظ »
طبق چیزی که توی ارور نوشته توی خط سیزدهم نوشتی txt.get() در حالی که اون اسم به یه استرینگ اشاره داره ولی کلاس استرینگ متدی به اسم get نداره. من تا حالا با tkinter کار نکردم ولی چیزی که گفتم درباره استرینگ صادقه و به سادگی از روی متن ارور فهمیده میشه.
متشکر از پاسخ شما،پس به نظر شما راه حل چیه؟

آفلاین قاسم طلایی

  • Full Member
  • *
  • ارسال: 122
  • جنسیت : پسر
پاسخ : مشکل در اجرا شدن کد در پایتون
« پاسخ #3 : 16 تیر 1397، 05:20 ب‌ظ »
فهمیدم مشکل از کجاست.باید متد grid را در زیر هر المان تعریف کنیم نه در رو به روی آن.وقتی این متد را در رو به روی المان تعریف کنیم هیچی رو برنمیگردونه.به خاطر همین خطای none type میده.پس کد رو باید اینجوری تغییر بدیم.
#include
from tkinter import *
from tkinter import ttk
#information of app
app=Tk()
app.title("Ghasem Talaee")
app.geometry('800x500')
#label
lbl=Label(app,text="welcome to my first app:",font=("Arial",25))
lbl.grid(column=0,row=0)
#input from user
txt=StringVar()
txt=Entry(app,width=20,font=("Arial",20))
txt.grid(column=1,row=0)
def clicked():
    res="button was clicked and print text box:" + txt.get()
    lbl1=Label(app,text=res)
    lbl1.grid(column=0,row=1)
#button
btn=Button(app,text="click",padx=20,font=("Arial",17),bg="orange",fg="red",command=clicked)
btn.grid(column=2,row=0)
app.mainloop()

و نتیجه ی اجرای کد:
https://pasteboard.co/Htm2KGN.jpg
« آخرین ویرایش: 16 تیر 1397، 05:28 ب‌ظ توسط قاسم طلایی »