Buen dia
Estoy haciendo una interfaz grafica con Tkinter, en el cual tengo mi ventana principal y una ventana secundaria donde se usa toplevel()
quiero colocar una tabla en la ventana secundaria pero al hacerlo la tabla se despliega en la ventana principal he buscado el como y la verdad no he encontrado una respuesta, este es el codigo que tengo (omiti las lineas de codigo de los botones, etiquetas y entradas de texto para no hacerlo muy largo), para que lo visualicen y si encuentran el error me digan en donde, muchas gracias!!!!
from Tkinter import *
import ttk
import Tkinter as tk
import sqlite3
class Product: #conexion con la base de datos
db_lab = 'laboratorio.db' #ventana principal
def __init__(self, window):
self.wind = window
self.wind.title('Sistema de control')
self.wind.geometry('1080x720')
#creando el contenedor
frame = LabelFrame(self.wind, text = 'Elegir una de las siguientes opciones: ')
frame.grid(row = 0, column = 0, columnspan = 3, pady = 20)
frame.configure(background = 'gray')
ttk.Button(frame, text = 'Registro de paciente', command = self.ventana_paciente).grid(row = 3, columnspan = 2, pady = 10, sticky = W)
def ventana_paciente(self): #ventana secundaria
self.wind_pac = tk.Toplevel()
self.wind_pac.title = ('Registro del paciente')
self.wind_pac.configure(background = 'gray')
self.wind_pac.geometry('1080x720') #visualizacion de la tabla self.wind_pac = ttk.Treeview(height = 10, columns = ('1','2', '3', '4', '5'))
self.wind_pac.grid(row = 12, column = 0, columnspan = 9)
self.wind_pac.heading('#0', text = 'Apellido Paterno', anchor = CENTER)
self.wind_pac.heading('#1', text = 'Apellido Materno', anchor = CENTER)
self.wind_pac.heading('#2', text = 'Nombre', anchor = CENTER)
self.wind_pac.heading('#3', text = 'Edad', anchor = CENTER)
self.wind_pac.heading('#4', text = 'Sexo', anchor = CENTER)
self.wind_pac.heading('#5', text = 'Fecha de nacimiento', anchor = CENTER)
27-05-2019, 09:17 AM (Última modificación: 27-05-2019, 09:21 AM por Myszowor.)
(27-05-2019, 02:30 AM)Johnny_LS escribió: Buen dia
Estoy haciendo una interfaz grafica con Tkinter, en el cual tengo mi ventana principal y una ventana secundaria donde se usa toplevel()
quiero colocar una tabla en la ventana secundaria pero al hacerlo la tabla se despliega en la ventana principal he buscado el como y la verdad no he encontrado una respuesta, este es el codigo que tengo (omiti las lineas de codigo de los botones, etiquetas y entradas de texto para no hacerlo muy largo), para que lo visualicen y si encuentran el error me digan en donde, muchas gracias!!!!
from Tkinter import *
import ttk
import Tkinter as tk
import sqlite3
class Product: #conexion con la base de datos
db_lab = 'laboratorio.db' #ventana principal
def __init__(self, window):
self.wind = window
self.wind.title('Sistema de control')
self.wind.geometry('1080x720')
#creando el contenedor
frame = LabelFrame(self.wind, text = 'Elegir una de las siguientes opciones: ')
frame.grid(row = 0, column = 0, columnspan = 3, pady = 20)
frame.configure(background = 'gray')
ttk.Button(frame, text = 'Registro de paciente', command = self.ventana_paciente).grid(row = 3, columnspan = 2, pady = 10, sticky = W)
def ventana_paciente(self): #ventana secundaria
self.wind_pac = tk.Toplevel()
self.wind_pac.title = ('Registro del paciente')
self.wind_pac.configure(background = 'gray')
self.wind_pac.geometry('1080x720') #visualizacion de la tabla self.wind_pac = ttk.Treeview(height = 10, columns = ('1','2', '3', '4', '5'))
self.wind_pac.grid(row = 12, column = 0, columnspan = 9)
self.wind_pac.heading('#0', text = 'Apellido Paterno', anchor = CENTER)
self.wind_pac.heading('#1', text = 'Apellido Materno', anchor = CENTER)
self.wind_pac.heading('#2', text = 'Nombre', anchor = CENTER)
self.wind_pac.heading('#3', text = 'Edad', anchor = CENTER)
self.wind_pac.heading('#4', text = 'Sexo', anchor = CENTER)
self.wind_pac.heading('#5', text = 'Fecha de nacimiento', anchor = CENTER)
Bueno yo no soy ningún experto pero si que estoy realizando una app con bases de datos y treeviews.
yolo que veo ahí es que estas asignado a la misma variable dos "widgets" distintos. El Top level y el Treeview.
Tampoco estas asignado el widget en el que quieres que aparezca el Treeview.
Te pongo un ejemplo de Treeview dentro de una Top level que a su vez está dentro de una Main window (Tk):
Gracias por hacerme ver el error, ya que no tenia la idea en donde asignar cada widget y tampoco observaba en que parte del codigo lo tenia que indicar, no soy un experto tampoco de hecho soy un novato en Python tengo bases de programacion pero son muy basicas y quise adentrarme en este lenguaje porque me parece muy util
Aprobecho este hilo que tiene que ver con Treeviews para no abrir uno nuevo.
Me estoy volviendo loco para cambiar el style de un treeview. Me ocurre algo extraño. Si lo hago en un portátil que tengo con Ubuntu no hay ningún problema el Treeview funciona correctamente. Pero en mi ordenador de sobremesa no hay manera de modificar el background ni el foreground del Treeview.
Para empezar cuando creo un Treeview en el portátil el color de fondo del mismo por defecto es el beige, mientras que si lo creo en el PC de sobremesa es blanco totalmente.
Bien os pongo el Treeview y los estilos y funciones que utilizo.
Bien, para empezar del style general del Treeview(self.styletreecclviewab) no me acepta nada más que el parámetro font, el background es como si no estuviera ahí.
Luego, cuando le añado el texto, me lo añade correctamente pero nada de background. Se queda completamente blanco el fondo y no lo entiendo porque como ya digo con el mismo sistema en el portátil me funciona correctamente.(Me cambia todos los parámetros, font, background, foreground).
Y es que no sé que es lo que puede estar pasando. Os mando una imagen de como queda el Treeview despues de añadir el texto desde un Entry.