python ipyvuetify 关闭浮动对话框(ipywidgets)
python ipyvuetify closing floating dialog (ipywidgets)
我正在使用 ipyvutify 尝试编写出色的 GUI。
它看起来很棒,但对于从未做过 HTML & CSS.
的人来说有点难
以下是点击“打开对话框”按钮时生成浮动对话框的完整代码。
我想了解使用 ipyvuetify 和以下代码打开和关闭浮动对话框的功能,即使代码有效(有缺陷)我也无法理解。
目标是打开一个带有按钮的对话框,并在对话框内有一个关闭按钮(连同其他按钮)
import ipyvuetify as v
lorum_ipsum= 'loren loren'
#oepn dialog:
v_btn_OTHER = v.Btn(class_='mx-2 light-blue darken-1', children=['OTHER'])
def on_click_v_btn_OPEN (widget, event, data):
exampledialog.value = True
pass
v_btn_OPEN.on_event('click', on_click_v_btn_OPEN)
# CLOSE BUTTON INSIDE THE DIALOG
v_btn_CLOSE = v.Btn(class_='mx-2 light-blue darken-1', children=['CLOSE'])
def on_click_v_btn_CLOSE (widget, event, data):
exampledialog.value = False
v_btn_CLOSE.on_event('click', on_click_v_btn_CLOSE)
# ACTION BUTTON INSIDE THE DIALOG
v_btn_OTHER = v.Btn(class_='mx-2 light-blue darken-1', children=['OTHER'])
def on_click_v_btn_OTHER (widget, event, data):
# code to open facebook.com in a new tab
pass
v_btn_OTHER.on_event('click', on_click_v_btn_OTHER)
# THE DIALOG
exampledialog = v.Dialog(width='500',
v_slots=[{
'name': 'activator',
'variable': 'x',
'children': v.Btn(v_on='x.on', color='success', dark=True, children=[
'OTHER dialog'
]),
}],
children=[
v.Card(children=[
v.CardTitle(class_='headline gray lighten-2', primary_title=True, children=[
"Lorem ipsum"
]),
v.CardText(children=[
lorum_ipsum,
v.TextField(label='Label', placeholder='Placeholder'),
v_btn_CLOSE,
v_btn_OTHER,
]),
])
])
# VISUALIZATION
display(v.Layout(children=[v_btn_OPEN,exampledialog]))
如果您将上面的代码粘贴到您的某个单元格中,您会发现我想了解的以下奇怪行为。
如果您不在 VISUALIZATION PART 中显示 exampledialog,则 OTHER 按钮将不起作用。仅当 exampledialog 是 Layout 的子项的一部分时,该按钮才有效。
另外对话框本身的按钮消失一次是运行第一次
这真是一件奇怪的事情。
谁能给个解释。
一般的问题是如何通过对话框外的按钮打开和关闭对话框。 dialog.value=True 似乎没有用
除了第一个按钮的变量名称中的一个小错字外,它看起来都是正确的。
第一个按钮应该是 'v_btn_OPEN' 而不是 'v_btn_OTHER',因为您在对话框中使用了 'other' 按钮作为关闭按钮。
现在,回答您的问题:
在可视化部分中包含示例对话框的必要性:
exampledialog 需要添加到 [DOM][1] 中,否则对于客户端来说它们根本不存在。使用 ipyvuetify 这是通过将元素输出到客户端来完成的。仅仅将它们作为 python (server-side) 个对象是不够的。
[1]: https://www.w3.org/TR/WD-DOM/introduction.html#:~:text=The%20Document%20Object%20Model%20(DOM,文档%20is%20accessed%20and%20manipulated.
对话框本身的按钮消失一次是 运行 第一次: 这似乎与 ipyvuetify 中插槽行为中的当前错误有关,如你的情况。
您使用的解决方法是将按钮放在元素外部并通过 'on_click_v_btn_OPEN' 函数链接它们,目前是建议的解决方案,直到修复此错误。
我正在使用 ipyvutify 尝试编写出色的 GUI。 它看起来很棒,但对于从未做过 HTML & CSS.
的人来说有点难以下是点击“打开对话框”按钮时生成浮动对话框的完整代码。
我想了解使用 ipyvuetify 和以下代码打开和关闭浮动对话框的功能,即使代码有效(有缺陷)我也无法理解。
目标是打开一个带有按钮的对话框,并在对话框内有一个关闭按钮(连同其他按钮)
import ipyvuetify as v
lorum_ipsum= 'loren loren'
#oepn dialog:
v_btn_OTHER = v.Btn(class_='mx-2 light-blue darken-1', children=['OTHER'])
def on_click_v_btn_OPEN (widget, event, data):
exampledialog.value = True
pass
v_btn_OPEN.on_event('click', on_click_v_btn_OPEN)
# CLOSE BUTTON INSIDE THE DIALOG
v_btn_CLOSE = v.Btn(class_='mx-2 light-blue darken-1', children=['CLOSE'])
def on_click_v_btn_CLOSE (widget, event, data):
exampledialog.value = False
v_btn_CLOSE.on_event('click', on_click_v_btn_CLOSE)
# ACTION BUTTON INSIDE THE DIALOG
v_btn_OTHER = v.Btn(class_='mx-2 light-blue darken-1', children=['OTHER'])
def on_click_v_btn_OTHER (widget, event, data):
# code to open facebook.com in a new tab
pass
v_btn_OTHER.on_event('click', on_click_v_btn_OTHER)
# THE DIALOG
exampledialog = v.Dialog(width='500',
v_slots=[{
'name': 'activator',
'variable': 'x',
'children': v.Btn(v_on='x.on', color='success', dark=True, children=[
'OTHER dialog'
]),
}],
children=[
v.Card(children=[
v.CardTitle(class_='headline gray lighten-2', primary_title=True, children=[
"Lorem ipsum"
]),
v.CardText(children=[
lorum_ipsum,
v.TextField(label='Label', placeholder='Placeholder'),
v_btn_CLOSE,
v_btn_OTHER,
]),
])
])
# VISUALIZATION
display(v.Layout(children=[v_btn_OPEN,exampledialog]))
如果您将上面的代码粘贴到您的某个单元格中,您会发现我想了解的以下奇怪行为。
如果您不在 VISUALIZATION PART 中显示 exampledialog,则 OTHER 按钮将不起作用。仅当 exampledialog 是 Layout 的子项的一部分时,该按钮才有效。 另外对话框本身的按钮消失一次是运行第一次
这真是一件奇怪的事情。 谁能给个解释。
一般的问题是如何通过对话框外的按钮打开和关闭对话框。 dialog.value=True 似乎没有用
除了第一个按钮的变量名称中的一个小错字外,它看起来都是正确的。
第一个按钮应该是 'v_btn_OPEN' 而不是 'v_btn_OTHER',因为您在对话框中使用了 'other' 按钮作为关闭按钮。
现在,回答您的问题:
在可视化部分中包含示例对话框的必要性: exampledialog 需要添加到 [DOM][1] 中,否则对于客户端来说它们根本不存在。使用 ipyvuetify 这是通过将元素输出到客户端来完成的。仅仅将它们作为 python (server-side) 个对象是不够的。
[1]: https://www.w3.org/TR/WD-DOM/introduction.html#:~:text=The%20Document%20Object%20Model%20(DOM,文档%20is%20accessed%20and%20manipulated.
对话框本身的按钮消失一次是 运行 第一次: 这似乎与 ipyvuetify 中插槽行为中的当前错误有关,如你的情况。 您使用的解决方法是将按钮放在元素外部并通过 'on_click_v_btn_OPEN' 函数链接它们,目前是建议的解决方案,直到修复此错误。