Python ile tkinker browser yapımı [Soru]

Merhaba,


import time as tm
import webbrowser as web
from tkinter import *
from tkinter import messagebox

pencere = Tk()

pencere.title(“mini Browser v0.1”)
pencere.geometry(“400x300”)

#grid form çizdirme
uygulama = Frame(pencere)
uygulama.grid()

L1 = Label(uygulama, text=" ---- ")
L1.grid(padx=110, pady=5)

E1 = Entry(uygulama, bd =2)
E1.grid(padx=110, pady=3)

#button ekleme bölümü
button1 = Button(uygulama, text = " Search " , width=10,height=5, command= web.open(E1))
button1.grid(padx=110, pady=80)

pencere.mainloop()

#formu çiz
pencere.mainloop()


gibi bir komut yazmıştım bu komutda basit bir tarayıcı oluşuyor ama buton kısmında sorun oluştu yardım eder misiniz?

Merhaba :slight_smile:

button1 = Button(uygulama, text = " Search " , width=10,height=5, command= web.open(E1))

satırındaki web.open fonksiyonu bizden bir string değer istiyor ama biz ona Entry sınıfından bir obje gönderiyoruz.

Bu satırı

button1 = Button(uygulama, text = " Search " , width=10,height=5, command= web.open(E1.get()))

olarak değiştirirsek, E1 isimli Entry yerine E1 isimli Entry’nin değerini göndermiş oluruz ve sorun ortadan kalkar.

1 Beğeni

Peki ama bu sefer de aramıyor basıyorum basıyorum aramıyor.

Nedenini ben de anlayamadım ama şu şekilde yapınca çalışıyor:

import time as tm
import webbrowser as web
from tkinter import *
from tkinter import messagebox


pencere = Tk()

pencere.title("mini Browser v0.1")
pencere.geometry("400x300")

#grid form çizdirme
uygulama = Frame(pencere)
uygulama.grid()

L1 = Label(uygulama, text=" EF studio / python engineering ")
L1.grid(padx=110, pady=5)

E1 = Entry(uygulama, bd =2)
E1.grid(padx=110, pady=3)

def browser_open():
    web.open(E1.get())

#button ekleme bölümü
button1 = Button(uygulama, text = " Search " , width=10,height=5, command= browser_open)
button1.grid(padx=110, pady=80)


pencere.mainloop()

#formu çiz
pencere.mainloop()

Merhaba :grinning:

sanırım sorun command parametresine verilecek fonksiyonun parantezsiz yazılması gerektiğinden kaynaklanıyor. Yani şöyle çözülebililr

import time as tm
import webbrowser as web
from tkinter import *
from tkinter import messagebox

pencere = Tk()


def ac():
    i=E1.get()
    web.open(i)
    
pencere.title("mini Browser v0.1")
pencere.geometry("400x300")

#grid form çizdirme
uygulama = Frame(pencere)
uygulama.grid()

L1 = Label(uygulama, text=" ---- ")
L1.grid(padx=110, pady=5)

E1 = Entry(uygulama, bd =2)
E1.grid(padx=110, pady=3)

#button ekleme bölümü
button1 = Button(uygulama, text = " Search " , width=10,height=5, command= ac)
button1.grid(padx=110, pady=80)

pencere.mainloop()

#formu çiz

pencere.mainloop()

Umarım Faydalı Olur
:grinning: