Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.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_Enthought_Enaml - Fatal编程技术网

Python 创建确定/取消对话框

Python 创建确定/取消对话框,python,enthought,enaml,Python,Enthought,Enaml,它应该很简单,但我还没有弄清楚如何在ENML中执行一个简单的OK/cancel确认对话框。有人能告诉我吗?我正在使用Qt4的ETS工具包,其中包含PySideAPI、Python2.7和Enmal 0.6.8 我的应用程序由一个主窗口组成,按如下方式启动: from enaml.stdlib.sessions import simple_session from enaml.qt.qt_application import QtApplication ... session = simpl

它应该很简单,但我还没有弄清楚如何在ENML中执行一个简单的OK/cancel确认对话框。有人能告诉我吗?我正在使用Qt4的ETS工具包,其中包含PySideAPI、Python2.7和Enmal 0.6.8

我的应用程序由一个主窗口组成,按如下方式启动:


from enaml.stdlib.sessions import simple_session
from enaml.qt.qt_application import QtApplication

...

session = simple_session('myApp',...)

app = QtApplication([session])
app.start_session('myApp')
app.start()

提前感谢

看起来确实应该有一个内置的小部件。尽管如此,基于ENML附带的FileDialog示例,这里有一些东西可以工作,并且该模式易于扩展

from enaml.layout.api import vbox, align
from enaml.widgets.api import Window, Container, Label, PushButton


enamldef Main(Window): main_win:

    title = 'Main'
    attr dlg_result : str = 'waiting'

    Container:
        constraints = [
            vbox(pb, lbl),
            align('h_center', lbl, pb),
        ]

        Label: lbl:
            align = 'center'
            text << main_win.dlg_result

        PushButton: pb:
            text = 'Dialog'
            clicked ::
                session.add_window( TheDialog(listener=main_win,result='dlg_result') )

enamldef TheDialog(Window): dlg_win:
    title = 'Dialog'
    modality = 'application_modal' # one of ['non_modal', 'window_modal', 'application_modal']
    attr listener
    attr result

    Container:
        constraints = []

        PushButton: ok_btn:
            text = 'Okay'
            clicked ::
                setattr(listener, result, 'Okay')
                dlg_win.close()

        PushButton: cancel_btn:
            text = 'Cancel'
            clicked ::
                setattr(listener, result, 'Cancel')
                dlg_win.close()
从enaml.layout.api导入vbox,对齐
从enaml.widgets.api导入窗口、容器、标签、按钮
enamldef Main(窗口):Main_win:
标题='Main'
属性dlg_结果:str='waiting'
容器:
约束=[
vbox(pb,lbl),
对齐('h_中心',lbl,pb),
]
标签:lbl:
align=‘居中’
文本