@@ -53,19 +53,17 @@ def __init__(self):
53
53
self .url_bar .returnPressed .connect (self .navigate_to_url )
54
54
self .toolbar .addWidget (self .url_bar )
55
55
56
- # Botão para adicionar nova guia - AGORA USANDO LAMBDA PARA GARANTIR NENHUM ARGUMENTO
56
+ # Botão para adicionar nova guia
57
57
new_tab_btn = QAction ("➕ Nova Guia" , self )
58
58
new_tab_btn .setStatusTip ("Abrir uma nova guia" )
59
- new_tab_btn .triggered .connect (lambda : self .add_new_tab ()) # <--- AQUI ESTÁ A MUDANÇA PRINCIPAL
59
+ new_tab_btn .triggered .connect (lambda : self .add_new_tab ())
60
60
self .toolbar .addAction (new_tab_btn )
61
61
62
62
63
- self .add_new_tab (QUrl ("https://www.google.com" ), "Página Inicial" ) # Adiciona a primeira guia
64
- # Após adicionar a primeira aba, garantimos que os botões sejam atualizados
63
+ self .add_new_tab (QUrl ("https://www.google.com" ), "Página Inicial" )
65
64
self .update_buttons_state ()
66
65
67
66
68
- # Ocultar a barra de status por enquanto (pode ser adicionada depois se necessário)
69
67
self .statusBar ().hide ()
70
68
71
69
def current_browser (self ):
@@ -76,30 +74,26 @@ def current_browser(self):
76
74
77
75
def add_new_tab (self , qurl = None , label = "Nova Guia" ):
78
76
"""Adiciona uma nova guia ao navegador."""
79
- # Se qurl é None, ele significa que a chamada veio sem argumento (e deve usar o padrão)
80
- # Se vier um bool (True/False), isso é um sinal indesejado, então redefinimos para o padrão
81
77
if qurl is None or isinstance (qurl , bool ):
82
- qurl = QUrl ("https://www.google.com" ) # Padrão para nova aba
78
+ qurl = QUrl ("https://www.google.com" )
83
79
84
80
browser = BrowserTab ()
85
- browser .setUrl (qurl ) # Agora qurl será sempre um QUrl
81
+ browser .setUrl (qurl )
86
82
87
83
i = self .tabs .addTab (browser , label )
88
84
self .tabs .setCurrentIndex (i )
89
85
90
- # Atualiza a URL na barra quando a página muda
91
86
browser .urlChanged .connect (lambda qurl_obj , browser = browser : self .update_urlbar (qurl_obj , browser ))
92
- browser .loadStarted .connect (lambda : self .update_buttons_state ()) # Atualiza estado dos botões
93
- browser .loadFinished .connect (lambda success : self .update_buttons_state ()) # Atualiza estado dos botões
87
+ browser .loadStarted .connect (lambda : self .update_buttons_state ())
88
+ browser .loadFinished .connect (lambda success : self .update_buttons_state ())
94
89
95
- # Conectar o título da guia para ser o título da página
96
90
browser .titleChanged .connect (lambda title , browser = browser : self .tabs .setTabText (self .tabs .indexOf (browser ), title ))
97
91
98
92
99
93
def tab_open_doubleclick (self , index ):
100
94
"""Abre uma nova guia ao dar clique duplo na barra de abas."""
101
- if index == - 1 : # Clicou em uma área vazia
102
- self .add_new_tab () # Chama sem argumentos explícitos
95
+ if index == - 1 :
96
+ self .add_new_tab ()
103
97
104
98
def current_tab_changed (self , index ):
105
99
"""Atualiza a barra de URL quando a guia ativa muda."""
@@ -129,8 +123,12 @@ def navigate_to_url(self):
129
123
if "." in url and not " " in url :
130
124
url = "https://" + url
131
125
else :
132
- search_query = QUrl .toPercentEncoding (url )
133
- url = f"https://www.google.com/search?q={ search_query } "
126
+ # --- AQUI ESTÁ A CORREÇÃO ---
127
+ # Codifica o termo de busca para bytes e depois o decodifica para string normal antes de usar
128
+ search_query_bytes = QUrl .toPercentEncoding (url )
129
+ search_query_str = search_query_bytes .data ().decode ('utf-8' ) # Converte QByteArray para string UTF-8
130
+ url = f"https://www.google.com/search?q={ search_query_str } "
131
+ # ----------------------------
134
132
135
133
browser .setUrl (QUrl (url ))
136
134
self .update_buttons_state ()
0 commit comments