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

2024-09-23 22:24:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我不想在我的程序周围设置边界,但只要我设置好wx.无边界到框架上 我得到了一个蓝色的小盒子,它带走了所有的东西。在

我怎么设置wx.无边界不会破坏一切?在

我什么都试过了!在

谢谢。在

代码:

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()

Tags: imageselfidsizeinitframefileparent
2条回答

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

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

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

不管怎样运行它,我都遇到了一个分段错误(这表明wxPython的C代码有问题)

问题是textbox和{}的父代是panel.bitmap1,而它应该是{}。这是有意义的,因为位图并不意味着有子项。奇怪的是它是如何失败的,这是wx的一个问题。在

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

相关问题 更多 >