Как писать ярлыки на арабском языке tkinter Combobox? - PullRequest
0 голосов
/ 18 февраля 2019

Как писать ярлыки на арабском питоне tkinter Combobox

# -*- coding: UTF-8 -*-
from tkinter import *
from tkinter.ttk import Combobox

v = ["تصنيفات","نصنيفات"]
combo = Combobox(t, values=v, state="readonly")
combo.place(x=758, y=145)
print combo.get()

Результат

╩╒غو▌

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

Я не смог воспроизвести проблему при запуске следующего кода с Python 2.7.15.Для обработки арабских значений не потребовалось ничего особенного.

Обратите внимание, что Tkinter управляется событиями, что означает, что все, что происходит, происходит много раз, когда работает mainloop().Для print текущего значения Combobox требуется определить функцию обратного вызова (value_changed() в приведенном ниже коде) и «привязать» ее к виртуальному событию, которое генерирует Tkinter при каждом изменении значения связанного виджета Combobox.

#!/usr/bin/env python2
# -*- coding: UTF-8 -*-
from tkinter import *
from tkinter.ttk import Combobox


t = Tk()
t.geometry('1000x600')  # Make window big enough to display Combobox.

v = ["تصنيفات","نصنيفات"]
combo = Combobox(t, values=v, state="readonly")
combo.place(x=758, y=145)

def value_changed(event):
    """ Combobox callback function. """
    print 'combo.get():', combo.get()

combo.bind('<<ComboboxSelected>>', value_changed)  # Bind event-handling function.

t.mainloop()

А вот снимок экрана, на котором Combobox отображается с арабскими значениями:

screenshot showing the Combobox with Arabic values

0 голосов
/ 18 февраля 2019

Попробуйте это в верхней части файла:

    # -*- coding: utf-8 -*-
    from __future__ import unicode_literals
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...