我正在尝试使用python开发gtk3的应用程序。我使用glade设计了UI。我想知道是否有任何使用窗口小部件数组的方法,其中类似类型的每个窗口小部件具有相同的名称,但具有不同的索引。这将有助于在很大程度上减少代码。
在我的应用程序中,我有10个标签小部件,它们根据数据数组显示不同的数据。现在我每次需要获取所需对象时都必须调用gbuilder.get_object()
方法。如果我能够使用小部件数组,那么它将有助于减少代码冗余。
答案 0 :(得分:1)
如果你已经在glade中命名了小部件,就像这样:
<widget_name>_1
<widget_name>_2
<widget_name>_n
在您的应用程序中创建这样的小部件列表会很容易,如下所示:
widget_list = [builder.get_object('<widget_name>_{0}'.format(i))
for i in range(1, n+1)]
例如,要获得第7项,您只需索引列表(请注意索引从0开始):
widget_list[6]
{0}
的目的是生成小部件的名称:
>> ['<widget_name>_{0}'.format(i)) for i in range(1, 4)
['<widget_name>_1', '<widget_name>_2', '<widget_name>_3']
有关如何使用format
的详情,请查看format specification mini-language