1

我希望我的程序没有边框,但是每当我将 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()
4

2 回答 2

2

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

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

于 2012-12-06T13:31:15.657 回答
0

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

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

问题是textboxand的父级wx.Buttonpanel.bitmap1,而它应该是panel。这是有道理的,因为位图并不意味着有子项目。奇怪的是它是如何失败的,这是 wx.xml 的问题。

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

于 2012-12-06T08:04:57.813 回答