在我的代码中,我有一个函数可以成功地将列表框元素的颜色更改为灰色,具体取决于用户是否选择了该颜色。它变为灰色,因此用户无法重新选择相同的项目,因此我尝试创建一个获取列表框中指定索引值的bg颜色的函数。
file_get_contents() has been disabled for security reasons on line number 2
我无法使用的代码行是:$ip = $_SERVER['REMOTE_ADDR'];
$details = json_decode(file_get_contents("http://ipinfo.io/{$ip}"));
echo $details;
有任何想法吗?请注意我不想使用课程......
我还尝试了bground = ListboxName[index]['bg']
if bground == 'gray':
print('bg is gray')
else:
print('bg is NOT gray')
和bground = ListboxName[index]['bg']
。
答案 0 :(得分:0)
如果您想获得单个项目的选项,请使用itemcget
。假设您的窗口小部件名为ListBoxName
,并且您已正确计算项目的索引,它将如下所示:
bground = ListBoxName.itemcget(index, "background")
这是一个完整的示例,当您点击某个项目时会显示颜色:
import tkinter as tk
import random
def handle_click(self):
curselection = listbox.curselection()
index = curselection[0]
color = listbox.itemcget(index, "background")
label.configure(text="color: {}".format(color))
root = tk.Tk()
label = tk.Label(root, anchor="w")
listbox = tk.Listbox(root)
label.pack(side="top", fill="x")
listbox.pack(fill="both", expand=True)
listbox.bind("<<ListboxSelect>>", handle_click)
for item in range(20):
color = random.choice(("red", "orange", "green", "blue", "white"))
listbox.insert("end", item)
listbox.itemconfigure("end", background=color)
root.mainloop()