Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从列表中生成一列复选框_Python_Pysimplegui - Fatal编程技术网

Python 如何从列表中生成一列复选框

Python 如何从列表中生成一列复选框,python,pysimplegui,Python,Pysimplegui,我最近发现了PySimpleGUI。当时看起来它可以帮我省下很多工作。 我想使用PySimpleGUI作为界面为jpeg图像创建一个“标记器”。 我在一个简单的python列表中有一长串标记词 我取得了一些成功,因为我可以创建一行复选框,但不能创建一列。 我最初的研究发现了一个生成器,可以用来制作许多复选框。 我的目标是用列表生成的检查框填充3列 生成器代码段 我找到了这段代码,从这个PySimpleGUI生成按钮,然后对复选框进行了修改。我有工作函数,但无法将它们格式化为列 def CBtn(

我最近发现了PySimpleGUI。当时看起来它可以帮我省下很多工作。 我想使用PySimpleGUI作为界面为jpeg图像创建一个“标记器”。 我在一个简单的python列表中有一长串标记词

我取得了一些成功,因为我可以创建一行复选框,但不能创建一列。
我最初的研究发现了一个生成器,可以用来制作许多复选框。
我的目标是用列表生成的检查框填充3列

生成器代码段 我找到了这段代码,从这个PySimpleGUI生成按钮,然后对复选框进行了修改。我有工作函数,但无法将它们格式化为列

def CBtn(BoxText):
    return sg.Checkbox(BoxText, size=(8, 1), default=False)

column2 = sg.Column([[sg.Text('User Id:')], [CBtn(Bx) for Bx in Tags1]])
主代码 如屏幕截图所示,生成的复选框设置在一行而不是一列中。因此,
sg.Column(column2)
是一行。当我手动添加
column5
的复选框时,我得到了一个正确的列

格式 当我使用生成器定义时,我得到以下信息:
[CBtn('1')、CBtn('2')、CBtn('3')、CBtn('log')、CBtn('ln')、CBtn('-')],

我正在寻找这样的东西:
[[CBtn('1')]、[CBtn('2')]、[CBtn('3')]、[CBtn('log')]、[CBtn('ln')]、[CBtn('-')]]、
这遵循手册第5列的格式

我已经尝试了许多不同的生成器和
def
,但都没有成功。 下面是我尝试实现上述格式的一个示例

column1 = [[sg.Text('Column 1', justification='center', size=(10, 1))], [BaseTag.append([CBtn(Bx)]) for Bx in Tags1]]
但是我得到了一个AttributeError:'NoneType'对象没有属性'ParentContainer'

最终的 这应该很容易。我想,我把框架弯曲得太厉害了。
PySimplegui看起来不错,但经过几个小时的无头工作后,我想知道。

据我所知,大规模生产对象只能在一个简单的循环中完成。 对代码的修改:。 1.[[CBtn(i)]表示范围内的i(len(Tags2))] 2. '第2栏和第5栏分别更改为第2栏和第5栏。 3.在“布局”中添加,因为没有逗号或括号;第二栏]],第五栏]]

def CBtn(BoxText):
    return sg.Checkbox(BoxText, size=(8, 1), default=False)

col2 = [[CBtn(i)] for i in range(len(Tags2))]

col5 = sg.Column([[sg.Checkbox("BoxText1", size=(8, 1), default=False)],
            [sg.Checkbox("BoxText2", size=(8, 1), default=False)],
            [sg.Checkbox("BoxText3", size=(8, 1), default=False)],
            [sg.Checkbox("BoxText4", size=(8, 1), default=False)]])

layout = [[sg.Menu(menu_def, tearoff=True)],
    [sg.Text('Image Tagger', size=(
        30, 1), justification='center', font=("Helvetica", 25), relief=sg.RELIEF_RIDGE)],
    [sg.Text('Your Folder', size=(15, 1), justification='right'),
        sg.InputText('Default Folder'), sg.FolderBrowse()],
    [sg.Text('Column 2', justification='center', size=(10, 1))],
    [sg.Column(col2)],
    [col5]]

window = sg.Window('Everything bagel', layout)

据我所知,大规模生产的对象只能在一个简单的循环。 对代码的修改:。 1.[[CBtn(i)]表示范围内的i(len(Tags2))] 2. '第2栏和第5栏分别更改为第2栏和第5栏。 3.在“布局”中添加,因为没有逗号或括号;第二栏]],第五栏]]

def CBtn(BoxText):
    return sg.Checkbox(BoxText, size=(8, 1), default=False)

col2 = [[CBtn(i)] for i in range(len(Tags2))]

col5 = sg.Column([[sg.Checkbox("BoxText1", size=(8, 1), default=False)],
            [sg.Checkbox("BoxText2", size=(8, 1), default=False)],
            [sg.Checkbox("BoxText3", size=(8, 1), default=False)],
            [sg.Checkbox("BoxText4", size=(8, 1), default=False)]])

layout = [[sg.Menu(menu_def, tearoff=True)],
    [sg.Text('Image Tagger', size=(
        30, 1), justification='center', font=("Helvetica", 25), relief=sg.RELIEF_RIDGE)],
    [sg.Text('Your Folder', size=(15, 1), justification='right'),
        sg.InputText('Default Folder'), sg.FolderBrowse()],
    [sg.Text('Column 2', justification='center', size=(10, 1))],
    [sg.Column(col2)],
    [col5]]

window = sg.Window('Everything bagel', layout)

这几乎奏效了。我需要稍微更新一下发电机,以得到我想要的。 列只有数字。我需要添加关键字

修改代码:

column1 = [[CBtn(Tags1[i])] for i in range(len(Tags1))]
然后用列表中的值填充该列。
现在,让我们来看看这个框架有多简单。

这几乎奏效了。我需要稍微更新一下发电机,以得到我想要的。 列只有数字。我需要添加关键字

修改代码:

column1 = [[CBtn(Tags1[i])] for i in range(len(Tags1))]
然后用列表中的值填充该列。
现在,让我们来看看这个框架有多简单。

这几乎奏效了。我需要稍微更新一下生成器,以得到我想要的。这几乎可以正常工作。我需要稍微更新一下发电机,以得到我想要的。