2024-10-14 12:33:54 发布
网友
我试图用这样一个wx.MessageBox来提示用户,但是在这样做时,我遇到了一些问题:
wx.MessageBox
response = wx.MessageBox(MESSAGE, document, wx.YES_NO | wx.STAY_ON_TOP) # prompt the user
出于某种原因,无论我传递了什么标志,对话框都拒绝保持在最上面。在所有运行的前台应用程序的顶部生成一个对话框,有没有一种简单易行的方法?在
我在某个地方读到,wx.STAY_ON_TOP与dialog一起使用时只适用于MSW。尽管如此,您可以通过将STAY_ON_TOP分配给self来解决这个问题
wx.STAY_ON_TOP
dialog
STAY_ON_TOP
self
编辑: 与其马上忽略它并将其标记为无用,不如尝试以下方法。只有单击Question按钮才位于顶部,其余按钮正常工作(不管怎样,在Linux上)
Question
import wx class Example(wx.Frame): def __init__(self, *args, **kwargs): super(Example, self).__init__(*args, **kwargs) self.InitUI() def InitUI(self): panel = wx.Panel(self) hbox = wx.BoxSizer() sizer = wx.GridSizer(2, 2, 2, 2) btn1 = wx.Button(panel, label='Info') btn2 = wx.Button(panel, label='Error') btn3 = wx.Button(panel, label='Question') btn4 = wx.Button(panel, label='Alert') sizer.AddMany([btn1, btn2, btn3, btn4]) hbox.Add(sizer, 0, wx.ALL, 15) panel.SetSizer(hbox) btn1.Bind(wx.EVT_BUTTON, self.ShowMessage1) btn2.Bind(wx.EVT_BUTTON, self.ShowMessage2) btn3.Bind(wx.EVT_BUTTON, self.ShowMessage3) btn4.Bind(wx.EVT_BUTTON, self.ShowMessage4) self.SetSize((300, 200)) self.SetTitle('Messages') self.Centre() self.Show(True) # self.SetWindowStyle(wx.STAY_ON_TOP) def ShowMessage1(self, event): dial = wx.MessageDialog(None, 'Download completed', 'Info', wx.OK) dial.ShowModal() def ShowMessage2(self, event): dial = wx.MessageDialog(None, 'Error loading file', 'Error', wx.OK | wx.ICON_ERROR | wx.STAY_ON_TOP) dial.ShowModal() def ShowMessage3(self, event): self.SetWindowStyle(wx.STAY_ON_TOP) dial = wx.MessageDialog(None, 'Are you sure to quit?', 'Question', wx.YES_NO | wx.NO_DEFAULT | wx.ICON_QUESTION) dial.ShowModal() self.SetWindowStyle(wx.DEFAULT_FRAME_STYLE) def ShowMessage4(self, event): dial = wx.MessageDialog(None, 'Unallowed operation', 'Exclamation', wx.OK | wx.ICON_EXCLAMATION) dial.ShowModal() def main(): ex = wx.App() Example(None) ex.MainLoop() if __name__ == '__main__': main()
我在某个地方读到,
wx.STAY_ON_TOP
与dialog
一起使用时只适用于MSW。尽管如此,您可以通过将STAY_ON_TOP
分配给self
来解决这个问题编辑:
与其马上忽略它并将其标记为无用,不如尝试以下方法。只有单击
Question
按钮才位于顶部,其余按钮正常工作(不管怎样,在Linux上)相关问题 更多 >
编程相关推荐