Отобразить Google Map API в окне Python Tkinter - PullRequest
3 голосов
/ 26 марта 2011

Привет! Я работаю над Google Map API в Python.Я использую исходный код, который можно найти на этом веб-сайте

Этот код при компиляции создает файл htm, показывающий карту Google с маркерами, размещенными на карте.

Итак, я создал оконную рамку, показанную ниже:

from Tkinter import *  # order seems to matter: import Tkinter first
import Image, ImageTk  # then import ImageTk
class MyFrame(Frame):
    def __init__(self, master, im):
        Frame.__init__(self, master)
        self.caption = Label(self, text="Some text about the map")
        self.caption.grid()
        self.image = ImageTk.PhotoImage(im) # <--- results of PhotoImage() must be stored
        self.image_label = Label(self, image=self.image, bd=0) # <--- will not work if 'image = ImageTk.PhotoImage(im)'
    self.image_label.grid()
    self.grid()

im = Image.open("test.html") # read map from disk

# or you could use the PIL image you created directly via option 2 from the URL request ...
mainw = Tk()
mainw.frame = MyFrame(mainw, im)
mainw.mainloop()

И с этой оконной рамкой я хочу отобразить изображение htm карты Google в этой оконной рамке.

1 Ответ

3 голосов
/ 26 марта 2011

Изображение htm, создаваемое pymaps - это не изображение, а файл html.В основном маленькая веб-страница.Чтобы отобразить его, вам нужно будет визуализировать HTML.Единственный html-рендер для TkInter, о котором я знаю, это TkHTML , хотя я никогда не использовал его, поэтому он может не поддерживать весь javascript, который использует ваш html-файл.

Вы бынамного лучше полностью отказаться от TkInter и перейти на более современный набор инструментов для виджетов, такой как wxPython, в котором встроен рендеринг html. Документацию по html можно найти в wxPython здесь .Если у вас есть GTK в вашей системе, я успешно использовал pywebkitgtk .

Однако нужно ли визуализировать этот кадр для чего-то определенного?Если вы просто хотите открыть файл из python, вы можете использовать встроенную библиотеку webbrowser , чтобы открыть его в браузере по умолчанию.

import webbrowser

webbrowser.open('test.htm')

И все.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...