如何关闭wxpython打开的窗口?

我先用wxpython打开一个窗口,但等到一定时间后自动关闭这个窗口 ,该怎么关闭?

import wx
class mywindow(wx.App):
    def __init__(self,parent,id):
        wx.Frame.__init__(self,parent,id,title="窗口",pos=(100,100),size=(500,500)

if __name__=='__main__':
    app=wx.App()
    frame=mywindow(parent=None,id=-1)
    frame.Show()
    app.MainLoop()

就是不明白如何关闭窗口,请大家帮帮忙!感谢!

0

3个回答

sleep 休眠 几秒
frame .close()

1
import wx
import threading
import time


class mywindow(wx.App):
    def doClose(self,j):
        time.sleep(j)
        self.frame.Close()
    def __init__(self):
        wx.App.__init__(self)
        self.frame = wx.Frame(parent=None, id=-1, title="窗口", pos=(100, 100), size=(500,500))
        self.frame.Show()
        t =threading.Thread(target=self.doClose,args=(0.5,))
        t.start()
if __name__ == '__main__':
    app = mywindow()
    app.MainLoop()
1

窗口关闭事件

现在有一个主窗口,然后加了一个TaskBarIcon
第一:我想把主窗口中的关闭事件改成隐藏主窗口,不知道怎么实现,在网上搜了一圈找到了wx.CloseEvent这个好像和close事件有关的。。但是不知道如何操作。。

第二:程序创建了一个Frame和一个TaskBarIcon,但是在关闭的时候有点问题。从Frame的关闭只能销毁Frame本身,而在TaskBarIcon中定义的菜单退出可以销毁所有资源
新车上牌需要哪些手续和步骤http://www.danews.cc/car/xinche/2019/0311/2652.html

代码:

-*- coding: cp936 -*-

import wx,sys
from threading import Thread
from helper import helpApp
from UserData import UserInfo
from udprotocol import MSGER

sys config

Default = helpApp()

class mainWindow():

def __init__(self, parent):

    # ---- init param -----

    User = UserInfo("192.168.1.47", "00-23-54-CA-83-F3")
    User = User.getUserInfo()
    self.USER_INFO = User[2] + "\nIP: " + User[0]
    self.USER_IMAGE = User[3]




    # ---- end -----

    MainPanel = wx.Panel(parent, -1)

    # activeX
    self.HOSTIMAGE = wx.StaticBitmap(MainPanel, -1, bitmap=self.ConvertUserImage())

    self.HOSTInfo = wx.StaticText(MainPanel, -1, self.USER_INFO)

    self.USERList = wx.TreeCtrl(MainPanel, -1)

    # user tree
    root = self.USERList.AddRoot("默认分组")

    # ---- layout -----

    HBox = wx.BoxSizer(wx.VERTICAL)

    # host sizer
    HOSTBox = wx.BoxSizer(wx.HORIZONTAL)
    HOSTBox.Add(self.HOSTIMAGE, 0)
    HOSTBox.Add(self.HOSTInfo, 0, wx.LEFT, 5)

    # list sizer
    ListBox = wx.BoxSizer(wx.HORIZONTAL)
    ListBox.Add(self.USERList, 1, wx.EXPAND)

    # order by row
    HBox.Add(HOSTBox, 0, wx.LEFT | wx.TOP, 5)
    HBox.Add((-1, 5))
    HBox.Add(ListBox, 1, wx.LEFT | wx.RIGHT | wx.BOTTOM | wx.EXPAND, 5)

    MainPanel.SetSizer(HBox)

    # ---- end layout -----


def ConvertUserImage (self):
    """resize image"""

    TempIMAGE = wx.Image(self.USER_IMAGE, wx.BITMAP_TYPE_ANY)
    TempIMAGE_Width = TempIMAGE.GetWidth()
    TempIMAGE_Height = TempIMAGE.GetHeight()

    TempIMAGE_NewSize = Default.ThumbSize(TempIMAGE_Width, TempIMAGE_Height)
    TempIMAGE_Thumb = TempIMAGE.Scale(TempIMAGE_NewSize[0], TempIMAGE_NewSize[1])
    TempBMP = TempIMAGE_Thumb.ConvertToBitmap()

    return TempBMP

def AddTreeNodes(self, parentItem, items):
    for item in items:
        if type(item) == str:
            newItem = self.tree.AppendItem(parentItem, item)
        else:
            newItem = self.tree.AppendItem(parentItem, item[0])
            self.AddTreeNodes(newItem, item[1])

class TaskBarICO(wx.TaskBarIcon):
TBMENU_SET = wx.NewId()
TBMENU_CLOSE = wx.NewId()

def __init__(self, parent):
    wx.TaskBarIcon.__init__(self)
    self.frame = parent
    self.SetIcon(wx.Icon(name = 'Msger.ico', type = wx.BITMAP_TYPE_ICO), Default.SYS_NAME + " " + Default.SYS_VERSION)

    self.Bind(wx.EVT_TASKBAR_LEFT_DCLICK, self.OnTaskBarLeftDClick)
    self.Bind(wx.EVT_MENU, self.OnSysSet, id = self.TBMENU_SET)
    self.Bind(wx.EVT_MENU, self.OnExit, id = self.TBMENU_CLOSE)

def CreatePopupMenu(self):
    """
    This method is called by the base class when it needs to popup
    the menu for the default EVT_RIGHT_DOWN event.
    """
    menu = wx.Menu()
    menu.Append(self.TBMENU_SET, "系统设置")
    menu.AppendSeparator()
    menu.Append(self.TBMENU_CLOSE, "退出")
    return menu

def OnTaskBarLeftDClick(self, event):
    if self.frame.IsIconized():
       self.frame.Iconize(False)
    if not self.frame.IsShown():
       self.frame.Show(True)
    self.frame.Raise()

def OnSysSet (self, event):
    pass

def OnExit (self, event):
    sys.exit()

class mainApp(wx.App):
def init(self):
wx.App.__init__(self, 0)
return None

def OnInit(self):
    """create main window"""

    self.frame = wx.Frame(parent = None, title = Default.SYS_NAME + " " + Default.SYS_VERSION, size = (Default.MainWindow_Default_Width,Default.MainWindow_Default_Height))

    self.MainWin = mainWindow(self.frame)
    self.TaskBar = TaskBarICO(self.frame)

    self.frame.SetIcon(wx.Icon('Msger.ico', wx.BITMAP_TYPE_ICO))
    self.frame.SetMinSize((Default.MainWindow_Min_Width,Default.MainWindow_Min_Height))
    self.frame.Center()
    self.frame.Show()

    #self.Bind(wx.EVT_CLOSE, self.OnClose, self.frame)

    return True

def OnHide(self, event):
    self.frame.Hide()

def OnClose (self, event):

print "Close soon..."

#wx.MessageBox('Hello From TaskBarIcon!', 'Prompt')

self.frame.Show(False)

return False

#self.TaskBar.Close()

#self.frame.Close()

#sys.exit()

#wx.CloseEvent.Veto()

#

#wx.CallAfter(TaskBarICO.OnExit)

#self.ExitMainLoop()

def OnExit (self):
    self.frame.Iconize(True)
    self.SetExitOnFrameDelete(False)
    print "Close soon..."
    return False

if name == '__main__':

App = mainApp()
App.MainLoop()

wx.CallAfter(MSGER())
1
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
【wxPython】wxPython之窗口操作
主题: Frames(框架) Windows(窗口) Controls/Widgets(控件/工具) Sizers(布局管理) Validators(验证器) 在这个章节,我们将会讲解wxPython处理窗口和窗口内容的方法,包括创建输入组件,使用各种工具和控件widgets/controls。 我们将会创建一个计算股票价格的小程序。如果你已经是个有经验的GUI开发者,这部分的内容对你来说太简单了,
如何关闭打开的所有窗口?
无条件的关闭所有打开的窗口,比如我的电脑,记事本,word,浏览器等等
如何关闭当前打开的窗口
在asp.net如何关闭当前打开的窗口
如何关闭showModalDialog打开的窗口
我用函数打开了一个页面,我想它进入下一个页面时,自动关闭本页面,怎么做rnfunction showpage()rnrnreturn(showModalDialog("suo/jzindex.asp","dialogWidth:350px; dialogHeight:250px; help:no; resizable:no; scroll:no; status:no"));rnwindow.close();rn
如何关闭Shell打开的窗口?
下面的代码在XP下无法关闭,不知道有什么问题或者有没有更好的办法rnOption ExplicitrnConst SYNCHRONIZE = &H100000rnPrivate Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As LongrnPrivate Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As LongrnPrivate Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As LongrnrnSub main()rn Dim ProcessId As Longrn Dim hProcess As Longrn ProcessId = Shell("notepad.exe", 1) '此处利用了 Shell当函数使用时返回的任务标识rn hProcess = OpenProcess(SYNCHRONIZE, False, ProcessId)rn Call TerminateProcess(hProcess, 3838)rnEnd Subrn
如何打开新的窗口,关闭原来的窗口?
我在页面a用 window.open()打开一个新窗口后,希望页面a关闭,并不要提示
关闭window.open打开的窗口
window.open("oa/main/middle_elink.jsp","_blank","height=120,width=350,scrollbars=no,resizable=yes,left=231,top=196,status=no,toolbar=no,menubar=no"); window.opener=null; window.open('','_self');...
窗口的打开与关闭问题
窗口A和窗口Brnrn窗口A中有一按钮,如何在点击按钮的时候关闭窗口A并且同时打开窗口B?????rnrnrn希望有详细代码
求助关闭和打开窗口
我正在做个MFC程序rn需要实现点击对话框1的关闭按钮 rn关闭或隐藏对话框1,再打开对话框2rn还要实现关闭对话框2,返回对话框1rnrn我试过WM_CLOSE消息,不好用,2个窗口全关闭rnDoModal() 函数也不好用rnrn有人能指条明路吗?
窗口打开关闭的问题
我有一个按钮打开一个 新的窗体rn然后在新的窗体里面有一个按钮,rn在点击他把新开的窗口关闭rnrn新打开的窗体我是用form1.show()打开的rn可是在新开的窗口里面用form1.close() 怎么开不掉rn程序不抱错!
窗口打开关闭的动画效果
我想用计时器控制窗口位置及高宽来自己实现动画,实现那种关闭时收缩的效果,但是发现当调用this.close()时会有一个黑线框一闪而过,很难看,有没有人知道这个黑线框怎么来的?以及怎么把它去掉?
java窗口的打开关闭
EventHandle 窗口的打开关闭 EventHandle 窗口的打开关闭EventHandle 窗口的打开关闭
窗口的关闭打开
实现窗口1打开窗口2后,再关闭自己,怎么做?rn窗口都是popup型的。rnW_1中在“打开”按钮中加入rnrnopen(W_2)rnclose(parent)rnrn没用,不知道是不是因为popup窗口的缘故?
wxPython的XRCed的操作窗口怎么打开
今天在论坛上看到关于用XRCed生成XRC文件,一直想尝试一下,可就是找不着方法打开操作[img=http://wiki.wxpython.org/XRCed?action=AttachFile&do=get&target=XRCed.png][/img].在谁知道怎么打开,告诉一下,谢谢!
如何禁止关闭一个打开的窗口
用window.open 打开了一个新窗口,在关闭前弹出提示,是否关闭,如果选择否则不关闭!在线等待!QQ:50113053
ImageButton1_Click如何使用????(打开关闭左面窗口)
如何在"ImageButton1_Click"事件中实现单击图片后关闭左面Frame,再单击后打开左面窗口。假设我在页面中有三个Frame(Left,Top,Main)用Java代码的ASP代码我能实现,但刚刚学习ASP.NET,应该也能在ImageButton1_Click事件中加入C#的代码后也能实现吧????
如何关闭window.open打开的多个窗口
请问,我在一个主窗体上用window.open打开了多个窗口,我想在主窗体关闭时将打开的多个窗体一起关闭,我应如何做?rnrn谢谢!
在vc中如何关闭打开的ie窗口?
请问各位大侠,我在vc中调用WinExec打开了一个ie窗口,rn应该调用什么样的代码来关闭它?多谢!!!!!
如何关闭XCOPY打开的窗口,详细一点
我用XCOPY 复制库文件,想用SEND(LHANDLER,16,0,0)关闭,但是FINDWINDOWSA()不能正常返回句柄,我不知道应该用什么作为它的参数,“MS-DOS 方式”“xcopy"试过了都不行,返回总是0.rn希望哪位高手能详细的帮我解决这个问题,不甚感激!
如何关闭showModalDialog打开的窗口?在线等
关闭rnrn上面这段代码怎么不起作用?rn它是打开一个新窗口,然后关闭了。怎么回事,不是把自己关闭了。rnrnrn急!
如何把window.open方法打开的窗口关闭
要求是这样:当父窗体关闭后,在父窗体用window.open方法打开的所有窗体都关闭!
如何打开新窗口,关闭旧窗口
下面是打开新窗口的语句,但如何关闭旧窗口rnResponse.Write(" ");
如何关闭CreateOleObject('internetExplorer.Application')打开的IE窗口
varrn ie: variant;rnrnrn 在线程中打开了个iern ie := CreateOleObject('internetExplorer.Application');rnrn 在线程中可以用 ie.quit 关闭打开的ie窗口,rnrnrn问题是: 在主程序关闭的时候如何关闭打开的ie窗口呢?rnrn ie.quit 会提示 "应用程序调用一个已为另一线程整理的接口".rnrnrn
如何关闭用ShellExecute打开的窗口?
用rnShellExecute(NULL, _T("open"), _T("IEXPLORE.exe"), _T("http://www.csdn.net/"), NULL, SW_HIDE);rn打开了一个窗口,但不知如何关闭它了,求救...
如何关闭ShowModal模式打开的窗口
在AForm中通过showModal打开BForm。rn我想在BForm中ShowModal打开CForm的时候关闭BForm。rn请教如何作?
用vbscript如何关闭javascript打开的窗口
as title
在winfrom中如何关闭已经打开的窗口?
有三个窗体,Form1,Form2,Form3。Form1為入口,之後是Form2,Form3。現在要求是在Form3操作完成后關閉或者重新打開Form2窗體,該如何實現呢?
如何实现关闭一个已经打开的Web窗口?( 不是关闭本窗口而是关闭别的窗口)
-
wxPython分隔窗口
1、分割窗口 分隔窗口(wx.SplitterWindow)就是将窗口分成两部分,即左右或上下两部分,如下图所示窗口,整体上分为左右两个窗口,右窗口又分为上下两窗口,两个窗口之间的分隔线是可以拖动的,称为“窗框”(sash)。 wx.SplitterWindow中一个常用的方法有:  SplitVertically(window1, window2, sashPosition=0)。设置左...
wxpython,窗口,控件,事件
介绍一个python的图形化界面,wxpython。        wxpython是Python语言对流行的wxWidgets跨平台GUI工具库的绑定。而wxWidgets是用C++语言写成的。        wxPython是跨平台的。这意味着同一个程序可以不经修改地在多种平台上运行。现今支持的平台有:32/64位微软Windows操作系统、大多数Unix或类Unix系统、苹果Mac OS
wxpython分割窗口的实现
0 环境准备 wxPython坏境的安装(wxPython当前也支持Python3.X版本),在已经配置好的python下,在dos中:pip install wxpython即可,本程序是在win10系统环境下实现。 1 代码详解 #分割窗口 import wx #自定义一个窗口类MyFrame class MyFrame(wx.Frame): def __init__(s...
wxpython的窗口开发
我已经建立了一个wx.Frame的主界面,在运行期间又调用一个wxFrame来显示我的图形,怎样才能把显示图形的界面资源清掉,而不把主界面清掉。
wxPython简单的窗口程序
当人们说到GUI界面程序时,往往就是指有窗口,菜单和图标。自然他们就认为使用wx.Window来表示一个屏幕上的窗口,但是很不幸,因为不是这样使用的,在wxPython里wx.Window是可视化组件(按钮、菜单等等)的基类,而是使用wx.Frame来表示程序的窗口,这种定义导致很多新同学对wxPython的窗口的困惑不解,经常用错它们。下面来演示一个使用应用程序窗口的例子:#python 3.6
wpf窗口打开关闭特效
wpf窗口打开关闭特效,很简单的一个特效,代码很短
窗口打开关闭脚本.rar
窗口打开关闭脚本.rar窗口打开关闭脚本.rar窗口打开关闭脚本.rar窗口打开关闭脚本.rar窗口打开关闭脚本.rar
API动态关闭与打开窗口
程序运行时动态打开窗口,应用API函数,GETWINDOWSRECT,GETDC,SETBKCOLOR
打开新窗口 关闭旧窗口
我想在一个旧的窗口中打开新的窗口,并且把原来的窗口关闭 rn 比如在旧的窗口中有一个链接“下一步”我点击这个按钮时,将显示下一个窗口,同时这个窗口关闭。 能实现这个功能。 ?
vb.net 窗口打开与关闭问题.
用VB.net设计了一个程序.创建form1和form2rn当我单击form1的按钮时.打开form2.但需要关闭form1 rn这样怎么实现?rn是用 form2.show() 吗? 我用这个代码 为什么不能打开form2 却关闭了form1...然后程序退出调试了...rn请高手指点..~rnrn[code=VB.NET]rnPublic Class Form1rn Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Clickrn Form2.Show()rn Me.close()rn End SubrnEnd Class[/code]
关闭已打开IE窗口
DELPHI6中rn要做一个按键来关闭已经打开的所有IE窗口!
我的窗口打开、关闭异常
用户登录之后,执行如下脚本rnrnsettings ='width=120,height=100,top=0,left=0,scrollbars=no,location=no,directories=no,status=yes,menubar=no,toolbar=no,resizable=no'; rnwin=window.open(mypage,myname,settings); --- 打开新窗口rnwindow.opener=null;rnwindow.close(); ---关闭原先窗口rnwin.focus();rnrnrn有时执行很不正常,把原先窗口关闭了,新窗口没有打开啊,什么都没有了~rnrn大家帮忙看看,是什么原因,哪里写错了
相关热词 c#异步发送kafka c#窗体编号 c# 操作二进制文件 c# 反射 机制 c#线程 窗体失去响应 c#角度转弧度 c# 解析gps数据 c# vs设置 语法版本 c# json含回车 c#多线程demo