tkinter - How can a file.py containing grid() can be imported properly into a file.py containing pack()? -


this main file import file file1

from tkinter import* import random import time tk=tk() tk.title("app manager") tk.resizable(0,0) tk.wm_attributes("-topmost",1) canvas=canvas(tk,width=460,height=500,bg='black',bd=0,highlightthickness=0) canvas.create_text(230,50,text="app manager",font=('bold',50),fill="gold") canvas.pack() tk.update() class ball:     def __init__(self,canvas,color):         self.canvas=canvas         self.id=canvas.create_oval(0,0,15,15,fill=color)         self.canvas.move(self.id,100,100)         start=[-4,-3,-2,-1,1,2,3,4]         random.shuffle(start)         self.x=start[0]         self.y=-4         self.canvas_height=self.canvas.winfo_height()         self.canvas_width=self.canvas.winfo_width()     def draw(self):         self.canvas.move(self.id,self.x,self.y)         pos=self.canvas.coords(self.id)         if pos[1]<=0:             self.y=4         if pos[3]>=self.canvas_height:            self.y=-4         if pos[0]<=0:             self.x=4         if pos[2]>=self.canvas_width:             self.x=-4 class b:     def pong():         tk.destroy()         import pong     def bounce():         tk.destroy()         import bounce     def calculator():         import calculator     def quit1():         tk.destroy() b1=button(tk,text="play pong",font=('bold',15),bg='brown',fg='gold',command=b.pong) b1.pack(side=left) b2=button(tk,text="play bounce",font=('bold',15),bg='brown',fg='gold',command=b.bounce) b2.pack(side=left) b3=button(tk,text="calculator",font=('bold',15),bg='brown',fg='gold',command=b.calculator) b3.pack(side=left) b4=button(tk,text="quit",font=('bold',15),bg='brown',fg='gold',command=b.quit1) b4.pack(side=right) ball=ball(canvas,"white") while 1:     ball.draw()     tk.update_idletasks()     tk.update()     time.sleep(0.01) 

the second file code of calculator. file of calculator works when run independently. when run clicking 'calculator' button through file 1 buttons of file 2 not work. may because file1 contains pack() , file2 contains grid(). file imported file2

from tkinter import* import random import time tk=tk() tk.resizable(width=false,height=false) tk.title("calculator") tk.configure(bg='black') tk.wm_attributes("-topmost",1) frame=frame(tk) frame.pack() frame.grid(row=1,column=0) frame.configure(bg="black") canvas=canvas(tk,width=600,height=150,bg="black",bd=0,highlightthickness=0) canvas.grid(row=0,column=0) canvas.create_text(300,75,text="calculator",font=('bold',50),fill="gold") equa="" equation=stringvar() calculation=label(frame,textvariable=equation,font=  ("bold",40),background='black',fg='gold') equation.set("enter equation:") calculation.grid(columnspan=4) tk.update() class ball:     def __init__(self,canvas,color):         self.canvas=canvas         self.id=canvas.create_oval(0,0,15,15,fill=color)         self.canvas.move(self.id,100,100)         start=[-4,-3,-2,-1,1,2,3,4]         random.shuffle(start)         self.x=start[0]         self.y=-4         self.canvas_height=self.canvas.winfo_height()         self.canvas_width=self.canvas.winfo_width()     def draw(self):         self.canvas.move(self.id,self.x,self.y)         pos=self.canvas.coords(self.id)         if pos[1]<=0:             self.y=2         if pos[3]>=self.canvas_height:             self.y=-2         if pos[0]<=0:             self.x=2         if pos[2]>=self.canvas_width:             self.x=-2 def press(num):     global equa     equa=equa+str(num)     equation.set(equa) def equal():     global equa     total=str(eval(equa))     equation.set(total)     equa="" def clear():     global equa     equa=""     equation.set("") equal=button(frame,text="=",font=("bold",40),fg="gold",bg="black",bd=0,command=equal) equal.grid(row=4,column=2) clear=button(frame,text="c",font=("bold",40),fg="gold",bg="black",bd=0,command=clear) clear.grid(row=0,column=4) button0=button(frame,text="0",font=("bold",40),fg="gold",bg="black",bd=0,command=lambda:press(0)) button0.grid(row=4,column=1) button1=button(frame,text="1",font=("bold",40),fg="gold",bg="black",bd=0,command=lambda:press(1)) button1.grid(row=1,column=0) button2=button(frame,text="2",font=("bold",40),fg="gold",bg="black",bd=0,command=lambda:press(2)) button2.grid(row=1,column=1) button3=button(frame,text="3",font=("bold",40),fg="gold",bg="black",bd=0,command=lambda:press(3)) button3.grid(row=1,column=2) button4=button(frame,text="4",font=("bold",40),fg="gold",bg="black",bd=0,command=lambda:press(4)) button4.grid(row=2,column=0) button5=button(frame,text="5",font=("bold",40),fg="gold",bg="black",bd=0,command=lambda:press(5)) button5.grid(row=2,column=1) button6=button(frame,text="6",font=("bold",40),fg="gold",bg="black",bd=0,command=lambda:press(6)) button6.grid(row=2,column=2) button7=button(frame,text="7",font=("bold",40),fg="gold",bg="black",bd=0,command=lambda:press(7)) button7.grid(row=3,column=0) button8=button(frame,text="8",font=("bold",40),fg="gold",bg="black",bd=0,command=lambda:press(8)) button8.grid(row=3,column=1) button9=button(frame,text="9",font=("bold",40),fg="gold",bg="black",bd=0,command=lambda:press(9)) button9.grid(row=3,column=2) plus=button(frame,text="+",font=("bold",40),fg="gold",bg="black",bd=0,command=lambda:press('+')) plus.grid(row=1,column=3) minus=button(frame,text="-",font=("bold",40),fg="gold",bg="black",bd=0,command=lambda:press('-')) minus.grid(row=2,column=3) multiply=button(frame,text="x",font=("bold",40),fg="gold",bg="black",bd=0,command=lambda:press('*')) multiply.grid(row=3,column=3) divide=button(frame,text="/",font=("bold",40),fg="gold",bg="black",bd=0,command=lambda:press('/')) divide.grid(row=4,column=3) dot=button(frame,text=".",font=("bold",40),fg="gold",bg="black",bd=0,command=lambda:press('.')) dot.grid(row=4,column=0) remainder=button(frame,text="%",font=("bold",40),fg="gold",bg="black",bd=0,command=lambda:press('%')) remainder.grid(row=1,column=4) power=button(frame,text="^",font=("bold",40),fg="gold",bg="black",bd=0,command=lambda:press('**')) power.grid(row=2,column=4) leftbracket=button(frame,text="(",font=("bold",40),fg="gold",bg="black",bd=0,command=lambda:press('(')) leftbracket.grid(row=3,column=4) rightbracket=button(frame,text=")",font=("bold",40),fg="gold",bg="black",bd=0,command=lambda:press(')')) rightbracket.grid(row=4,column=4) ball=ball(canvas,"white") while 1:     ball.draw()     tk.update_idletasks()     tk.update()     time.sleep(0.01) 

you have rewrite 1 or both of files. each contain root window, tkinter program can have single root window.

if intend importable, should design importable. means doesn't have executable code @ global scope. instead, should define functions , classes can used code doing importing.


Comments

Popular posts from this blog

mysql - Dreamhost PyCharm Django Python 3 Launching a Site -

java - Sending SMS with SMSLib and Web Services -

java - How to resolve The method toString() in the type Object is not applicable for the arguments (InputStream) -