Customtkinter ve Socket

customtkinter ve socket ile bir chat uyglaması yapıyordum
yavaşdan ilerliyordum
şöyle bir hata çıktı:

IP_value = dialog.get_input()
NameError: name 'dialog' is not defined

Kodlar aşağıda:

import customtkinter as ctk
import socket
import time
import socket

host = 'localhost'
port = 12345

def System():
    global satir,root
    ctk.set_appearance_mode("dark-blue")
    ctk.set_default_color_theme("blue")
    root = ctk.CTk()
    root.geometry("1000x700")
    root.resizable(False,False)
    root.title("Chat")
    satir = 10  
System()
#-1

def Elements():
    global textbox
    global entry
    global komut
    global IP_value
    global dialog
    IP_value = dialog.get_input()
    entry = ctk.CTkEntry(root,width=790,height=30)
    entry.place(x=10,y=660)
    textbox = ctk.CTkTextbox(root,width=980,height=640)
    button1 = ctk.CTkButton(root,text="Gönder",width=105,command=Message)
    button1.place(x=810,y=660)
    button2 = ctk.CTkButton(root, text="Adres Seç",command=IP,width=50)
    button2.place(x=920,y=660)

def IP():
    global dialog
    dialog = ctk.CTkInputDialog(text="Adres:", title="Test")

def Message():
    global satir
    satir = satir + 10
    komut =  entry.get()
    textbox.configure(state="normal")
    textbox.insert(str(satir)+".0", "\n"+str("Sen:")+str(komut)) 
    textbox.configure(state="disabled")
    print(satir)

def Start():
    
    textbox.place(x=10,y=10)
    textbox.configure(state="normal")
    textbox.insert("0.0","Chat Pre-Alpha\n____________________________________________________________________________________________________________________________________________________________________________\n"+IP_value) 
    textbox.configure(state="disabled")


#-1

Elements()
Start()
root.mainloop()

Ip ve Message fonksiyonunu çağırmamışsınız gerekli değişken orada tanımlanıyor ama çağırmadığınız için bulamıyor değişkeni python.

IP()
Elements()
Message()
Start()
root.mainloop()

Kodun sonu böyle olmalı yani.

IP fonksiyonunu çağırdığında dialog ilk başta açılıyot ama ben programın içinden butona tıklanılınca açılmasını istiyorum

onlara özel bir fonkisyon mu oluşturmam gerek

def IP():
    dialog = ctk.CTkInputDialog(text="Adres:", title="Test")
    textbox.configure(state="normal")
    textbox.insert("3.0", dialog.get_input())
    textbox.configure(state="disabled")

Ip kodunu böyle yapıp diğer yerlerdeki bunla ilgili kodları silebilirsiniz.

teşekkürler kod çalıştı

Rica ederim, ne demek.(ne demek 20 karakter olsun diye)

    global textbox, entry, komut, IP_value, dialog

bu şekilde yazarsan gereksiz satır kullanmamış olursun.

2 Beğeni