python 在其他窗口上打开窗口

kcugc4gi  于 2023-01-29  发布在  Python
关注(0)|答案(2)|浏览(177)

调用函数时如何在其他窗口上打开一个窗口?

import wx
def openFile(wildcard="*"):
    app = wx.App(None)
    style = wx.FD_OPEN | wx.FD_FILE_MUST_EXIST
    dialog = wx.FileDialog(None, 'Open', wildcard=wildcard, style=style)
    if dialog.ShowModal() == wx.ID_OK:
        path = dialog.GetPath()
    else:
        dialog.Destroy()
        path = 'No file'
        return f'<div class="notification error">{path}</div>'
    dialog.Destroy()
    return f'<div id="pathToFile" class="notification">{path}</div>'
vuktfyat

vuktfyat1#

来自@VZ的Accepted回答对于所有正常使用来说都是正确的,但严格地说,您的代码可以进行调整以使其工作,即使它没有真正的用途,但您会注意到,尽管传递了wx.STAY_ON_TOP,但它不会执行它。
就像这样:

import wx
def openFile(wildcard="*"):
    app = wx.App(None)
    style = wx.FD_OPEN | wx.FD_FILE_MUST_EXIST | wx.STAY_ON_TOP
    dialog = wx.FileDialog(None, 'Open', wildcard=wildcard, style=style)
    if dialog.ShowModal() == wx.ID_OK:
        path = dialog.GetPath()
    else:
        path = 'No file'
    dialog.Destroy()
    return f'<div class="notification error">{path}</div>'

print(openFile())
9gm1akwq

9gm1akwq2#

要在其他顶层窗口上显示对话框,您需要将该窗口指定为对话框父窗口(而不是像您那样使用None)。
不支持在所有窗口顶部显示本地对话框,如“打开文件”对话框,这只能通过使用wx.STAY_ON_TOP标志对自定义窗口进行。

相关问题