从python Gtk列表中选择一个选项并将其存储在变量中
我正在使用python Gtk制作GUI菜单。 我制作了一个Gtk列表,并在Gtk助手窗口(有后退和下一步按钮)中描述它。 按下“下一步”按钮后,我想将列表中选定的选项存储在一个变量中,但我没有找到方法。 下面的示例是关于Gtk.Assistant窗口及其第一页的从python Gtk列表中选择一个选项并将其存储在变量中,python,python-3.x,user-interface,gtk,pygtk,Python,Python 3.x,User Interface,Gtk,Pygtk,我正在使用python Gtk制作GUI菜单。 我制作了一个Gtk列表,并在Gtk助手窗口(有后退和下一步按钮)中描述它。 按下“下一步”按钮后,我想将列表中选定的选项存储在一个变量中,但我没有找到方法。 下面的示例是关于Gtk.Assistant窗口及其第一页的 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk import os IMAGE_FOLDER = "images/" count =
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
import os
IMAGE_FOLDER = "images/"
count = 1
image_list = []
while True:
cur_image = os.popen("ls "+IMAGE_FOLDER+" | sed -n "+str(count)+"p | tr -d '\n'").read()
if not cur_image:
break
image_list.append([cur_image])
print("image list =", image_list)
count+=1
class Assistant(Gtk.Assistant):
def __init__(self):
Gtk.Assistant.__init__(self)
self.set_title("Image Installer")
self.set_default_size(400, 200)
self.connect("cancel", self.on_cancel_clicked)
self.connect("close", self.on_close_clicked)
self.connect("apply", self.on_apply_clicked)
self.image= Gtk.Image()
self.image.set_from_file('./logo.png')
box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
self.append_page(box)
self.set_page_type(box, Gtk.AssistantPageType.INTRO)
self.set_page_title(box, "Image selection")
menu = Gtk.ListStore(str)
for choice in range(len(image_list)):
print(choice)
menu.append(image_list[choice])
menutreeview1 = Gtk.TreeView(menu)
renderer1 = Gtk.CellRendererText()
column1 = Gtk.TreeViewColumn("Select image for the installation", renderer1, text=0)
menutreeview1.append_column(column1)
box.pack_start(menutreeview1, True, True, 0)
box.pack_start(self.image, True, True, 0)
self.set_page_complete(box, True)
assistant = Assistant()
assistant.show_all()
Gtk.main()
您可以使用:
selectedtext = None
treeselection = self.menutreeview1.get_selection()
(treemodel, selectediter) = treeselection.get_selected()
if selectediter is not None:
selectedtext = treemodel[selectediter][0]
请记住将menutreeview1设置为数据成员,并将其选择模式设置为single:
self.menutreeview1 = Gtk.TreeView(menu)
self.menutreeview1.get_selection().set_mode(Gtk.SelectionMode.SINGLE)
您可以使用:
selectedtext = None
treeselection = self.menutreeview1.get_selection()
(treemodel, selectediter) = treeselection.get_selected()
if selectediter is not None:
selectedtext = treemodel[selectediter][0]
请记住将menutreeview1设置为数据成员,并将其选择模式设置为single:
self.menutreeview1 = Gtk.TreeView(menu)
self.menutreeview1.get_selection().set_mode(Gtk.SelectionMode.SINGLE)
请你发布一段你的代码好吗?我已经做了编辑。请你发布一段你的代码好吗?我已经做了编辑。谢谢你的帮助。另外,我想问,这个值如何通过selectedtext var connect with next按钮传递?您可以从任何页面获取该值!无论显示哪个页面,上面的代码段都有效。请确保使用
self.menutreeview1
,而不仅仅是menutreeview1
“助手”框中是否有这些代码行的特定位置?它们必须位于助手实例方法()中感谢您的帮助。另外,我想问,这个值如何通过selectedtext var connect with next按钮传递?您可以从任何页面获取该值!无论显示哪一页,上面的代码段都有效。请确保使用self.menutreeview1
,而不仅仅是menutreeview1
“助手”框中是否有这些代码行的特定位置?它们必须位于助手实例方法()