刷新wx.面板

亲爱的朋友们,
首先,祝大家新年快乐!
在过去的6个月里,我一直在学习Python和Tkinter图形用户界面包,
现在,我正在尝试重写我使用wxPython包编写的程序.
我有一个工具栏、一个面板(所有的"操作"都发生在上面)和一个状态栏.
我的问题是,我如何删除并重新绘制面板?以下是我使用的代码示例:

选择 | 换行 | 行号
  1. # -*- coding: cp1253 -*-
  2. from wxPython.wx import *
  3. import wx
  4.  
  5.  
  6. class ApplicationFrame(wxFrame):
  7.     def __init__(self, parent, ID, title):
  8.         wxFrame.__init__(self, parent, ID, title,
  9.                          wxDefaultPosition, wxSize(720, 450))
  10.         self.CreateStatusBar()
  11.         self.SetStatusText(u" StatusBar : Σύντομη περιγραφή της υπό επιλογή λειτουργίας")
  12.         toolbar1 = self.CreateToolBar( wx.TB_HORIZONTAL | wx.TB_TEXT | wx.BORDER_DOUBLE)
  13.         toolbar1.SetToolBitmapSize((70,63))
  14.         toolbar1.SetBackgroundColour("#d5ab6c")
  15.         toolbar1.AddSimpleTool(10, wx.Bitmap('Apothiki_Button.gif'),u" Αποθήκη ",u" Άνοιγμα καταλόγου αποθήκης")
  16.         toolbar1.AddSimpleTool(20, wx.Bitmap('Pelates_Button.gif'),u" Πελάτες ",u" Άνοιγμα καταλόγου πελατών")
  17.         toolbar1.AddSimpleTool(30, wx.Bitmap('Promitheftes_Button.gif'),u" Προμηθευτές ",u" Άνοιγμα καταλόγου προμηθευτών")
  18.         toolbar1.AddSimpleTool(40, wx.Bitmap('Exit_Button.gif'),u" Έξοδος ",u" Έξοδος από το πρόγραμμα")
  19.         toolbar1.Realize()
  20.         EVT_MENU(self,40,self.TimeToQuit)
  21.         EVT_MENU(self,20,self.Pelates)
  22.         EVT_MENU(self,30,self.ChangeColour)
  23.         self.panel=wx.Panel(self,id=50,style=wx.BORDER_SUNKEN,name=" My Panel")
  24.         self.panel.SetBackgroundColour("red")
  25.         self.panel.Show()
  26.         self.panel.Bind(EVT_LEFT_DCLICK,lambda event:self.panel.SetBackgroundColour("blue"))
  27.  
  28.  
  29.     def ChangeColour(self,event):
  30.         self.panel.SetBackgroundColour("skyblue")
  31.         self.panel.Refresh(true)
  32.  
  33.     def Pelates ( self,event):
  34.         pass
  35.  
  36.     def TimeToQuit(self, event):
  37.         self.Close(true)
  38.  
  39.  
  40. class MyApp(wxApp):
  41.     def OnInit(self):
  42.         frame = ApplicationFrame(NULL, -1, "Midas wx_Python")
  43.         frame.Show(true)
  44.         self.SetTopWindow(frame)
  45.         return true
  46.  
  47. app = MyApp(0)
  48. app.MainLoop()

如您所见,我尝试了两种方法来更改面板的颜色,但没有一种方法
它们工作正常.我注意到,使用Bind方法时,当我在面板上拖动并移动桌面上的另一个窗口时,面板会刷新.
我在Windows Vista上使用的是Python2.5.1.
提前感谢大家!
伊莱亚斯

# 回答1


谜题解决了!
不需要回复这个帖子!!
伊莱亚斯

标签: python

添加新评论