Могу ли я использовать Tkinter без отображения среды - PullRequest
0 голосов
/ 16 ноября 2018

Могу ли я использовать 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)

Как мне решить эту проблему?

1 Ответ

0 голосов
/ 16 ноября 2018

Могу ли я использовать tkinter без среды отображения?

Нет, вы не можете. Ткинтер требует отображения. Это может быть виртуальный дисплей, такой как xvfb, но для tkinter это должен быть действительный дисплей X11 или аналог в Windows и OSX.

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