EasyGui ButtonBox Изображение без кнопки - PullRequest
0 голосов
/ 15 октября 2018

Я делаю очень маленький графический интерфейс с easygui и его кнопочной панелью.Моя проблема: мое изображение также отображается в виде кнопки, но это не так.Есть ли способ отобразить изображение в поле кнопок, но это изображение не должно быть «кликабельным»?Для проверки вы должны сделать pip Install easygui

Вот мой вызов кнопки:

import easygui
version = "Version 1.0 -- 10.2018"

main_options=["Doors EXPORT","ANALYSE","VISUALIZE","Auto-Mode","Configuration"]

choosed_option = gui.buttonbox(msg="",title = version, choices = main_options,image ="logo.gif" )

1 Ответ

0 голосов
/ 15 октября 2018

Из документации, которую я нашел для buttonbox для easygui, ничего не говорится о том, что изображение не должно быть кнопкой или способом изменения его состояния.Однако вот чистый пример tkinter, который должен быть близок к тому, что вам нужно.

import tkinter as tk


root = tk.Tk()
version = "Version 1.0 -- 10.2018"
root.title(version)
root.geometry("675x200")
root.columnconfigure(0, weight=1)
root.rowconfigure(0, weight=1)

main_options=["Doors EXPORT","ANALYSE","VISUALIZE","Auto-Mode","Configuration"]

tk.Label(root, text="Here is where you message will go from the msg section of your buttonbox").grid(row=0, column=0, columnspan = len(main_options), stick="n", pady=(15,0))

img = tk.PhotoImage(file="logo.gif")
tk.Label(root,image=img).grid(row=1, column=0, pady=5)

frame2 = tk.Frame(root)
frame2.grid(row=2, column=0)

for ndex, item in enumerate(main_options):
    tk.Button(frame2, text=item).grid(row=0, column=ndex, ipadx=5, ipady=5, padx=5, pady=(30, 5), stick="ew")

root.mainloop()

Вы также можете создать класс, который выполняет по существу ту же самую вещь и принимает все аргументы, как кнопка выглядит следующим образом:

import tkinter as tk


options = ["Doors EXPORT","ANALYSE","VISUALIZE","Auto-Mode","Configuration"]
version = "Version 1.0 -- 10.2018"
msg = "Here is where you message will go from the msg section of your buttonbox"
ipath = "logo.gif"


class mock_buttonbox(tk.Tk):
    def __init__(self, var_msg = "", version = "", main_options = [], img_path=""):
        tk.Tk.__init__(self)
        self.title(version)
        self.geometry("675x200")
        self.columnconfigure(0, weight=1)
        self.rowconfigure(0, weight=1)

        try:
            tk.Label(self, text=var_msg).grid(row=0, column=0, columnspan = len(main_options), stick="n", pady=(15,0))
            img = tk.PhotoImage(file=img_path)
            tk.Label(self,image=img).grid(row=1, column=0, pady=5)
        except:
            print("Bad image path, wrong image format or no options provided.")

        frame2 = tk.Frame(self)
        frame2.grid(row=2, column=0)

        try:
            for ndex, item in enumerate(main_options):
                tk.Button(frame2, text=item).grid(row=0, column=ndex, ipadx=5, ipady=5, padx=5, pady=(30, 5), stick="ew")
        except:
            print("No options provided or options are not a value argument for text field.")
        self.mainloop()

mock_buttonbox(var_msg = msg, version = version, main_options = options, img_path = ipath)
...