Ошибка атрибута: __введите__ вкладки dearpygui

#python #python-3.x #dearpygui

Вопрос:

я пытался использовать вкладки в 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()
 

удостоверение личности не сработало, чтобы

код:

 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()
 

Комментарии:

1. Вы пробовали перейти with dpg.add_tab_bar(): на «просто dpg.add_tab_bar() «?

2. Верно. У объекта должна быть определенная поддержка with оператора, а у этих объектов ее нет. Просто выполняйте обычные задания/звонки.

3. mkrieger1, да, я пробовал, но это не работает, чтобы dpg.add_tab_bar('tabbar') TypeError: add_tab_bar() takes 0 positional arguments but 1 was given

4. это другая проблема — add_tab_bar() не удается получить позиционное значение. Возможно, вам придется использовать именованное значение, т. Е. label="tabbar" Вам следует проверить это в документации.

Ответ №1:

Я копаюсь в исходном коде демо-версии, а вы просто смешиваете разные методы.

Если вы используете with , то используйте функцию БЕЗ 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=