Python - error de sintaxis

 
Vista:

error de sintaxis

Publicado por Silvio (3 intervenciones) el 06/05/2021 19:12:46
Buenos dias gente, estoy aprendiendo a hacer algunas cositas en python y estoy experimentado con tkinter hice una ventana con un reloj y nos botones que habren paginas web pero tengo un problema con los atributos de los botones, los configuro con texto unicamente y funcionan pero cuando quiero agregar cualquier otro atributo me da error, cuando lo pruebo en otro codigo y escribo lo mismo funciona y no puedo entender que pasa, entiendan que estoy aprendiendo y tal vez sea un error tonto pero no lo encuentro:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
from tkinter import *
from tkinter.ttk import *
from time import *
from webbrowser import *
 
ventana = Tk()
ventana.title('--Reloj by Silvio Viola--')
ventana.iconbitmap(r"e:/python/reloj.ico")
ventana.config(bg ='black')
ventana.geometry("300x500")
def web_1():
    open_new_tab('http://www.gmail.com')
 
bt1 = Button(ventana,
    text='GMAIL',
    relief = 'raised', #aca me tira el error, si saco el atributo funciona.
    command=web_1)
 
bt1.place(x=0, y=0)
 
def web_2():
    open_new_tab('http://www.facebook.com')
 
bt2 = Button(ventana,
    text= 'FACEBOOK',
    command = web_2 )
bt2.pack()
 
def hora():
    datos1 = strftime('%I:%M:%S %p')
    datos2 = strftime('%d:%m:%Y')
    etiqueta1.config(text=datos1)
    etiqueta2.config(text=datos2)
    etiqueta1.after(1000, hora)
 
etiqueta1 = Label(ventana,
    font = ('Arial', 30),
    padding = '0',
    background = 'pink',
    foreground = 'black',
    relief= "raised",
    borderwidth=400)
etiqueta1.pack()
 
etiqueta2 = Label(ventana,
    font = ('Arial', 30),
    padding = '0',
    background = 'NavajoWhite2',
    foreground = 'DeepPink2',
    relief= "raised",
    borderwidth=300)
etiqueta2.pack()
 
hora()
 
 
ventana.mainloop()


E:\python>relojprueba.py
Traceback (most recent call last):
File "E:\python\relojprueba.py", line 14, in <module>
bt1 = Button(ventana,
File "C:\Users\sviola\AppData\Local\Programs\Python\Python39\lib\tkinter\ttk.py", line 607, in __init__
Widget.__init__(self, master, "ttk::button", kw)
File "C:\Users\sviola\AppData\Local\Programs\Python\Python39\lib\tkinter\ttk.py", line 552, in __init__
tkinter.Widget.__init__(self, master, widgetname, kw=kw)
File "C:\Users\sviola\AppData\Local\Programs\Python\Python39\lib\tkinter\__init__.py", line 2572, in __init__
self.tk.call(
_tkinter.TclError: unknown option "-relief"

Lo pruebo en este codigo sencillo y funciona:
1
2
3
4
5
6
7
8
9
10
from tkinter import *
ventana = Tk()
def hola():
    print('hola')
bt1 = Button(ventana,
    text='casa',
    command = hola,
    relief ='raised')
bt1.pack()
ventana.mainloop()
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

error de sintaxis

Publicado por joel (901 intervenciones) el 07/05/2021 08:17:00
Hola Silvio, el problema que tienes, es que la librería tkinter.ttk también tiene un Button!!! y este no acepta el parámetro relief

Quita esa librería, o carga únicamente los elementos que deseas... algo así:
1
from tkinter.ttk import Progressbar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

error de sintaxis

Publicado por tincopasan (1082 intervenciones) el 07/05/2021 10:57:46
más que error de sintaxis hay errores de importación,
el código está muy desorganizado, si bien es funcional es mejor comenzar y acostumbrarse a determinadas convenciones, que por supuesto podés pasar por alto.

sin grandes cambios modifico el código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#-*- coding: utf -8 -*-
#from tkinter import *   mala forma de importar ocupa recursos innecesarios
#from tkinter.ttk import *  igual que antes además puede generar conflictos con tk
from tkinter.ttk import Label
import tkinter as tk
#from time import *   mala forma de importar
from time import strftime
#from webbrowser import * mala forma de importar
from webbrowser import open_new_tab
 
def web_1():
    open_new_tab('http://www.gmail.com')
 
def web_2():
    open_new_tab('http://www.facebook.com')
 
def hora():
    datos1 = strftime('%I:%M:%S %p')
    datos2 = strftime('%d:%m:%Y')
    etiqueta1.config(text=datos1)
    etiqueta2.config(text=datos2)
    etiqueta1.after(1000, hora)
 
ventana = tk.Tk()
ventana.title('--Reloj by Silvio Viola--')
ventana.iconbitmap(r"e:/python/reloj.ico") #es mejor que el path este debajo del script o a la misma altura
ventana.config(bg ='aquamarine') #le cambio el color para que se vea claramente el efecto
ventana.geometry("300x500")
 
 
bt1 = tk.Button(ventana,text='GMAIL',command=web_1,relief='raised')
bt2 = tk.Button(ventana,text= 'FACEBOOK',command = web_2 ,relief='groove')
 
 
etiqueta1 = Label(ventana,font = ('Arial', 30),padding = '0',background = 'pink',
    foreground = 'black',relief= "raised",borderwidth=400)
 
etiqueta2 = Label(ventana,font = ('Arial', 30),padding = '0',background = 'NavajoWhite2',
    foreground = 'DeepPink2',relief= "raised",borderwidth=300)
 
bt1.place(x=0, y=0) #es mejor decidir si usar en todo place o pack
bt2.pack()
etiqueta1.pack()
etiqueta2.pack()
 
hora()
 
ventana.mainloop()

por supuesto no es ni por casualidad la mejor forma de escribirlo, pero para este script me parece más legible.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

error de sintaxis

Publicado por Silvio (3 intervenciones) el 07/05/2021 12:56:04
Es cierto el codigo esta bastante desordenado en realidad es algo de prueba para implementar cosas que voy aprendiendo, pero eso no quita que tenga que ser un poco mas ordenado, te agradezco por tomarte el tiempo y mostrarme la forma correcta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

error de sintaxis

Publicado por Silvio (3 intervenciones) el 07/05/2021 12:53:51
Te agradezco si es el error, ahora funciona fue de mucha ayuda tu sugerencia.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar