Открыть кадр Tkinter на основе результата логического выражения в Python - PullRequest
0 голосов
/ 16 мая 2018

Привет Tkinter и Python Masters,

Вот моя проблема. Я создаю простой графический интерфейс с Tkinter. У меня есть фоновое изображение, которое я хотел бы изменить на основе значения переменной, определенной в функции, которая подключается к API (JSON). Переменная будет содержать одно из двух значений. Либо 1, либо 2.

То, что я хотел бы сделать в Tkinter (на котором я полностью потерян), это иметь фоновое изображение. Если значение переменной в моей API-функции равно 1, в качестве фона укажите Image1. Если значение переменной равно 2, укажите Image2 в качестве фона.

Это немного грязно, но вот моя функция API

def apiconnect(statusvar):


def to_serializable(ticketid):
    return str(ticketid)
url = "http://staging2.apiname.com/ticket_api/tickets"
data = {'ticket_id' : ticketid, 'direction' : 'up'}

headers = {'Content-Type' : 'application/json', 'Authorization' : 'J0XxxxxVRy9hMF9Fo7j5'}
r = requests.post(url, data=json.dumps(data), headers=headers)
requestpost = requests.post(url, headers = headers, json = data)
response_data = requestpost.json()
statusvar = (response_data["status"])
messagevar = (response_data["message"])
json.dumps(url,data)

global accessResult
if statusvar == "successful":
        accessResult = 1
else:
        accessResult = 2

Возможно ли это в Tkinter? Я в основном хочу сослаться на мою переменную accessResult в моем кадре Tkinter и изменить фоновое изображение на основе этого значения.

Будь осторожен со мной, я совсем новый и такой

1 Ответ

0 голосов
/ 16 мая 2018

Так что я не специалист по Tkinter, но если вы хотите изменить фон только на основе двух значений, почему бы не использовать вместо этого логическое значение так:

# Here is where we make the check.
if accessResult == True:
    background_photo = PhotoImage(file = "C:\\Path\\To\\My\First\\\Photo1.png")
else:
    background_photo = PhotoImage(file = "C:\\Path\\To\\My\\Second\\Photo2.png")

backgroundLabel = Label(top, image=backgroundPhoto)
backgroundLabel.place(x=0, y=0, relwidth=1, relheight=1)

Удачи!Надеюсь, это поможет!

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