#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=