如何在不破坏程序的情况下应用wx.NO_BORDER?

时间:2012-12-06 07:34:15

标签: python wxpython

我希望我的程序没有边框,但每当我将wx.NO_BORDER设置为框架时 我得到了这个小蓝框,它可以随身携带。

如何设置wx.no_border而不破坏一切?

我已经尝试了一切!

感谢。

代码:

import wx
class nGUI(wx.Frame):
  def __init__(self,parent,id):
    wx.Frame.__init__(self,parent,id,size=(500,160),style=wx.DEFAULT_FRAME_STYLE & wx.NO_BORDER & ~wx.SYSTEM_MENU)
    panel=wx.Panel(self)
    self.Centre()
    image_file = '../nGFX/nPySlim.png'
    bmp1 = wx.Image(image_file, wx.BITMAP_TYPE_ANY).ConvertToBitmap()
    panel.bitmap1 = wx.StaticBitmap(panel, -1, bmp1, (0, 0))
    textbox = wx.TextCtrl(panel.bitmap1, -1, pos=(245,50), size=(210, 28))
    font = wx.Font(14,wx.FONTFAMILY_SWISS,wx.FONTSTYLE_SLANT,wx.FONTWEIGHT_NORMAL)
    textbox.SetFont(font)
    wx.Button(panel.bitmap1, -1, pos=(413,90), size=(60, 25), label="Generate")

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

2 个答案:

答案 0 :(得分:2)

您需要使用|添加样式,^删除它们

所以wx.DEFAULT_FRAME_STYLE | wx.NO_BORDER ^ wx.SYSTEM_MENU

答案 1 :(得分:0)

我不知道为什么你的程序只有wx.NO_BORDER标志失败,但问题并不存在。

但是我运行它,我得到了一个分段错误(这表明wxPython的C代码有问题)

问题是textboxwx.Button的父级是panel.bitmap1,而它应该是panel。这是有道理的,因为Bitmap并不意味着有子项。奇怪的是它是如何失败的,这是wx的一个问题。

我在Python 2.7上运行此版本的wxPython:2.8.12.1 (gtk2-unicode)。考虑到问题出在wxPython本身,这可能很重要。