Tkinterでマップ選択画面にradiobuttonを配置して選んだマップのframeに飛べるシステムを作っています。しかしエラーが出てしまってうまく変数にradiobuttonのvalue値を組み込むことができません。
main.py
# tkinterのインポート import tkinter as tk import tkinter.ttk as ttk import time import program as pg import talking as tg import keyboard import pygame if __name__ == "__main__": #メインウィンドウの設定 root = tk.Tk() root.attributes('-fullscreen', True) root.bind('<Escape>', lambda e: root.destroy()) root.geometry("1920x1200") root.configure(bg='black') root.grid_rowconfigure(0, weight=1) root.grid_columnconfigure(0, weight=1) #タイトルウィンドウ設置 frame = tk.Frame(root, bg='black') frame.grid(row=0, column=0, sticky="nsew", pady=20) #マップ画面 main_map = tk.Frame(root, bg='black') main_map.grid(row=0, column=0, sticky="nsew", pady=20) map_img = tk.PhotoImage(file='map.png') map_img_label = tk.Label(main_map, image=map_img, background='black') map_img_label.grid() map_radio = tk.IntVar() map_radio.set(0) map_1 = tk.Radiobutton(map_img_label, value=0, variable=map_radio) map_1.place(x=500, y=600) map_2 = tk.Radiobutton(map_img_label, value=1, variable=map_radio) map_2.place(x=1000, y=700) map_3 = tk.Radiobutton(map_img_label, value=2, variable=map_radio) map_3.place(x=1300, y=500) map_select_button = tk.Button(main_map, text='選択', command=lambda:pg.change_map(map_radio)) map_select_button.place(x=1800, y=1000) #ろとの塔 roto = tk.Frame(root, bg='black') roto.grid(row=0, column=0, sticky="nsew", pady=20) talk_label = tk.Label(roto, text = tg.roto_tell[pg.roto_x]) talk_label.place(x=0, y=800, width=1920, height=300) #勇者の集落 yuusha = tk.Frame(root, bg='black') yuusha.grid(row=0, column=0, sticky="nsew", pady=20) talk_label = tk.Label(yuusha, text = tg.yuusha_tell[pg.yuusha_x]) talk_label.place(x=0, y=800, width=1920, height=300) #天空の洞窟 tenku = tk.Frame(root, bg='black') tenku.grid(row=0, column=0, sticky="nsew", pady=20) talk_label = tk.Label(tenku, text = tg.tenku_tell[pg.tenku_x]) talk_label.place(x=0, y=800, width=1920, height=300) # frameを前面にする frame.tkraise() root.mainloop()
program.py
import talking as tg import time import tkinter as tk import tkinter.ttk as ttk import main import pygame map_no = [roto, yuusha, tenku] def change_map(var): map_value= var.get() map_no[map_value].tkraise()
error
map_no[map_value].tkraise() AttributeError: 'str' object has no attribute 'tkraise'
まだ回答がついていません
会員登録して回答してみよう