【问题标题】:How do i apply wx.NO_BORDER without ruining my program?如何在不破坏程序的情况下应用 wx.NO_BORDER?
【发布时间】:2012-12-06 07:34:14
【问题描述】:

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

【问题讨论】:

    标签: python wxpython


    【解决方案1】:

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

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

    【讨论】:

    • @vjgaero 边框是指没有标题栏、关闭、最小化等吗?
    【解决方案2】:

    我不知道为什么您的程序仅以 wx.NO_BORDER 标志失败,但我不存在这个问题。

    无论我如何运行它,我都遇到了分段错误(这表明 wxPython 的 C 代码有问题)

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-24
      • 1970-01-01
      • 1970-01-01
      • 2014-03-08
      相关资源
      最近更新 更多