【问题标题】:AttributeError: __enter__ dearpygui tabsAttributeError: __enter__ Dearpygui 选项卡
【发布时间】:2021-07-23 19:08:38
【问题描述】:

我试图在 Dearpygui 中使用标签,它给了我 这个错误:

Traceback (most recent call last):
  File "c:\main.py", line x, in <module>
    with dpg.add_tab_bar():
AttributeError: __enter__

我试着这样做

dpg.add_tab_bar('tabbar')

dpg.add_tab('tab1')
dpg.add_checkbox(label='checkbox')
dpg.end_tab()

dpg.end_tab_bar()

id 没用

代码:

import dearpygui.dearpygui as dpg

with dpg.window(label="window") as mainwind:
    with dpg.add_tab_bar():
        with dpg.add_tab(label='tab1'):
            dpg.add_checkbox(label='checkbox')
        


dpg.start_dearpygui()

【问题讨论】:

  • 你试过把with dpg.add_tab_bar():改成dpg.add_tab_bar()吗?
  • 对。一个对象必须对with 语句有特定的支持,而这些对象没有。只做正常的任务/电话。
  • mkrieger1,是的,我试过了,但对dpg.add_tab_bar('tabbar') TypeError: add_tab_bar() takes 0 positional arguments but 1 was given 不起作用
  • 这是不同的问题 - add_tab_bar() 无法获得位置值。也许你必须使用命名值 - 即。 label="tabbar" - 你应该在文档中检查它。

标签: python python-3.x dearpygui


【解决方案1】:

我在demo的源代码中挖掘,你只需混合不同的方法。

如果你使用with,那么使用函数WITHOUT add_

import dearpygui.dearpygui as dpg

with dpg.window(label="window"):       # without `add_`
    with dpg.tab_bar(label='tabbar'):  # without `add_`
        with dpg.tab(label='tab1'):    # without `add_`
            dpg.add_checkbox(label='Hello')
        with dpg.tab(label='tab2'):    # without `add_`
            dpg.add_checkbox(label='World')

dpg.start_dearpygui()    

没有with 也一样,但它需要add_parent=

import dearpygui.dearpygui as dpg

window = dpg.add_window(label="window")

tabbar = dpg.add_tab_bar(label='tabbar', parent=window)

tab1 = dpg.add_tab(label='tab1', parent=tabbar)
dpg.add_checkbox(label='Hello', parent=tab1)

tab2 = dpg.add_tab(label='tab2', parent=tabbar)
dpg.add_checkbox(label='World', parent=tab2)

dpg.start_dearpygui()

两种方法的混合

import dearpygui.dearpygui as dpg

with dpg.window(label="window"):       # without `add_`
   
    tabbar = dpg.add_tab_bar(label='tabbar')  # without `parent`
    
    tab1 = dpg.add_tab(label='tab1', parent=tabbar)
    dpg.add_checkbox(label='Hello', parent=tab1)
    
    tab2 = dpg.add_tab(label='tab2', parent=tabbar)
    dpg.add_checkbox(label='World', parent=tab2)

dpg.start_dearpygui()

如果您使用with ... as name:,那么您可以将name 用作parent,但您也可以跳过它。

import dearpygui.dearpygui as dpg

with dpg.window(label="window") as window:       # without `add_`
   
    #tabbar = dpg.add_tab_bar(label='tabbar')                 # without `parent`
    tabbar = dpg.add_tab_bar(label='tabbar', parent=window)   # or with `parent`
    
    tab1 = dpg.add_tab(label='tab1', parent=tabbar)
    dpg.add_checkbox(label='Hello', parent=tab1)
    
    tab2 = dpg.add_tab(label='tab2', parent=tabbar)
    dpg.add_checkbox(label='World', parent=tab2)

dpg.start_dearpygui()

顺便说一句:以及您必须始终与label=一起使用的文本

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-03
    • 2022-08-16
    • 1970-01-01
    • 1970-01-01
    • 2018-05-27
    • 1970-01-01
    • 1970-01-01
    • 2019-12-01
    相关资源
    最近更新 更多