#!/usr/bin/env python3 import gi, os, sys gi.require_version("Gtk", "4.0") gi.require_version("Adw", "1") gi.require_version("WebKit", "6.0") from gi.repository import Gtk, Adw, GLib, GLib, WebKit class MyWindow(Adw.Window): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.set_title("Tarayıcı") GLib.set_application_name("Tarayıcı") GLib.set_prgname('Tarayıcı') self.set_default_size(900, 600) self.main_box = Gtk.Box( orientation = Gtk.Orientation.VERTICAL ) self.set_content(self.main_box) self.hb = Adw.HeaderBar() self.inp_url = Gtk.Entry( width_request = 370 ) self.scroll = Gtk.ScrolledWindow() self.web = WebKit.WebView( vexpand = True ) self.web.load_uri("https://duckduckgo.com") self.inp_url.set_placeholder_text("Web'de arayın veya URL adresi girin...") self.web.connect('notify::estimated-load-progress', self.change_url) self.inp_url.connect("activate", self.on_inp_url_activate) self.btn_prev = Gtk.Button() self.btn_prev = Gtk.Button.new_from_icon_name("go-previous-symbolic") self.btn_prev.connect("clicked", self.on_btn_prev_clicked) self.btn_next = Gtk.Button() self.btn_next = Gtk.Button.new_from_icon_name("go-next-symbolic") self.btn_next.connect("clicked", self.on_btn_next_clicked) self.btn_box = Gtk.Box( spacing = 6 ) self.btn_box.append(self.btn_prev) self.btn_box.append(self.btn_next) self.btn_ref = Gtk.Button() self.btn_ref = Gtk.Button.new_from_icon_name("view-refresh-symbolic") self.btn_next.connect("clicked", self.on_btn_ref_clicked) self.hb.pack_start(self.btn_box) self.hb.pack_start(self.btn_ref) self.hb.set_title_widget(self.inp_url) self.main_box.append(self.hb) self.scroll.set_child(self.web) self.main_box.append(self.scroll) def on_btn_next_clicked(self, widget): self.web.go_forward() def on_btn_prev_clicked(self, widget): self.web.go_back() def on_inp_url_activate(self, widget): url_text = self.inp_url.get_text() if "https://" in url_text: self.web.load_uri(url_text) else: self.web.load_uri(f"https://duckduckgo.com/?q={url_text}") def on_btn_ref_clicked(self, widget): self.web.reload() def change_url(self, widget, frame): url_text = self.web.get_uri() self.inp_url.set_text(url_text) class MyApp(Adw.Application): def __init__(self, **kwargs): super().__init__(**kwargs) self.connect('activate', self.on_activate) def on_activate(self, app): self.win = MyWindow(application=app) self.win.present() app = MyApp(application_id="io.github.afacanc38.browser") app.run(sys.argv)