Jun-21-2023, 10:18 AM
I have 3 frames ipage1, page2,page3 in app, starting at page2 when entering app.
Page2 runs tkinter mapview.
Entering paee1/page2 "kills" the mapview.
Is there a way to keep frame2 tkinter mapview, alive when returning from page1/page3?
Page2 runs tkinter mapview.
Entering paee1/page2 "kills" the mapview.
Is there a way to keep frame2 tkinter mapview, alive when returning from page1/page3?
import kivy
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.gridlayout import GridLayout
from kivy.uix.textinput import TextInput
from kivy_garden.mapview import MapView
from kivy_garden.mapview import MapView, MapMarkerPopup
from kivy.uix.button import Button
from tkinter import *
import tkinter
import tkintermapview
window = tkinter.Tk()
window.geometry(f"{800}x{600}")
window.title("map_view_example.py")
# window = Tk()
window.rowconfigure(0, weight=1)
window.columnconfigure(0, weight=1)
window.state("zoomed")
window.title("WINDOW 1")
page1 = Frame(window)
page2 = Frame(window)
page3 = Frame(window)
for frame in (page1, page2, page3):
frame.grid(row=0, column=0, sticky="nsew")
def show_frame(frame):
frame.tkraise()
show_frame(page2)
# ==============page1==============
page1.config(background="blue")
pag1_label = Label(page1, text="page1")
pag1_label.place(x=56, y=56)
pg2_button = Button(page1, text="NEXT", command = lambda: show_frame(page2))
pg2_button.place(x=1700, y=50)
#==================Page2==================
pag2_label = Label(page2, text="page2")
pag2_label.place(x=56, y=56)
map_widget = tkintermapview.TkinterMapView(window, width=800, height=600, corner_radius=0)
map_widget.place(relx=0.5, rely=0.5, anchor=tkinter.CENTER)
# set current widget position and zoom
map_widget.set_position(60.03345, 11.35806) # Norway
marker_1 = map_widget.set_address("fjellvegen 4, auli, norway", marker=True)
map_widget.set_zoom(16)
pg2_button = Button(page2, text="NEXT", command = lambda: show_frame(page3))
pg2_button.place(x=1700, y=50)
#==================Page3==================
page3.config(background="green")
pag3_label = Label(page3, text="page3")
pag3_label.place(x=56, y=56)
pg3_button = Button(page3, text="NEXT", command = lambda: show_frame(page1))
pg3_button.place(x=1700, y=50)
window.mainloop()
