Могу ли я использовать tkinter без среды отображения?
Я нашел Временную шкалу в github и запустил его в моей среде, где нет дисплея (консоль доступна).
И я получил ошибку ниже.
Traceback (most recent call last):
File "./make_timeline.py", line 425, in <module>
timeline = Timeline(filename)
File "./make_timeline.py", line 109, in __init__
self.tk_root = Tkinter.Tk()
File "/usr/lib/python3.4/tkinter/__init__.py", line 1854, in __init__
self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: no display name and no $DISPLAY environment variable
Я хочу изменить этот код Python для работы без настройки DISPLAY.
Поэтому я попытался изменить его, чтобы не использовать tkinter, когда DISPLAY нетзадавать.Но я тоже должен изменить get_text_metrics()
, и мне интересно, каков наилучший подход.get_text_metrics()
, как показано ниже.
def get_text_metrics(self, family, size, text):
font = None
key = (family, size)
if key in self.fonts:
font = self.fonts[key]
else:
font = tkFont.Font(family=family, size=size)
self.fonts[key] = font
assert font is not None
(w, h) = (font.measure(text), font.metrics('linespace'))
return (w, h)
Как мне решить эту проблему?