我试图打开铬,然后要求用户关闭铬,所以我尝试使用wx进行操作,但是由于某些原因,我不知道使用硒时SetWindowStyle(wx.STAY_ON_TOP)无法正常工作。
我尝试使用以下标志创建wx.message_dialog:style = wx.STAY_ON_TOP 但它不起作用,所以我也尝试通过SetWindowStyle(wx.STAY_ON_TOP)更改窗口样式 但仍然无法正常工作
import wx
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1, title = "ffffffff")
self.options = Options()
self.options.add_argument("--start-fullscreen")
self.driver = None
panel = wx.Panel(self)
no_resize = wx.DEFAULT_FRAME_STYLE & ~ (wx.RESIZE_BORDER | wx.MAXIMIZE_BOX)
self.SetWindowStyle(no_resize)
button = wx.Button(panel, -1, "Show MessageDialog", (50,50))
self.Bind(wx.EVT_BUTTON, self.OnButton)
self.Show(True)
def OnButton(self, event):
self.driver = webdriver.Chrome(chrome_options=self.options, executable_path=r'chromedriver.exe')
self.driver.get('http://127.0.0.1'+':5000')
time.sleep(3)
self.SetWindowStyle(wx.STAY_ON_TOP)
stopBox = wx.MessageDialog(self , "do you want to stop","stop controling", style=wx.YES | wx.NO | wx.ICON_INFORMATION | wx.STAY_ON_TOP)
stopBoxAns = stopBox.ShowModal()
if stopBoxAns == 5103:
stopBox.Destroy()
no_resize = wx.DEFAULT_FRAME_STYLE & ~ (wx.RESIZE_BORDER | wx.MAXIMIZE_BOX)
self.SetWindowStyle(no_resize)
return 1
if stopBoxAns == 5104:
stopBox.Destroy()
no_resize = wx.DEFAULT_FRAME_STYLE & ~ (wx.RESIZE_BORDER | wx.MAXIMIZE_BOX)
self.SetWindowStyle(no_resize)
return 2
if __name__ == "__main__":
app = wx.App()
MyFrame()
app.MainLoop()
答案 0 :(得分:0)
下面的代码在Linux上表现良好。
如前所述,STAY_ON_TOP发出警告,“当前仅在MSW和GTK下实现”,而您尚未说明操作系统是什么。
import wx
class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1, title = "ffffffff")
panel = wx.Panel(self)
self.no_resize = wx.DEFAULT_FRAME_STYLE & ~ (wx.RESIZE_BORDER | wx.MAXIMIZE_BOX)
self.SetWindowStyle(self.no_resize)
button = wx.Button(panel, -1, "Show MessageDialog", (50,50))
self.Bind(wx.EVT_BUTTON, self.OnButton)
self.Show(True)
def OnButton(self, event):
wx.LaunchDefaultBrowser('https://wxpython.org/')
#self.SetWindowStyle(wx.STAY_ON_TOP)
stopBox = wx.MessageDialog(self , "do you want to stop","stop controling", style=wx.YES | wx.NO | wx.ICON_INFORMATION | wx.STAY_ON_TOP)
stopBoxAns = stopBox.ShowModal()
ret_value = 0
if stopBoxAns == wx.ID_YES:
ret_value = 1
if stopBoxAns == wx.ID_NO:
ret_value = 2
stopBox.Destroy()
self.SetWindowStyle(self.no_resize)
return ret_value
if __name__ == "__main__":
app = wx.App()
MyFrame()
app.MainLoop()