wxpython表格中可以加按钮吗_wxpython:添加背景图片和按钮

我对wxPython相当陌生,正在尝试在背景图像上放置一些按钮。我在wxPython中找不到一个容器,它可以包含一个图像和一些按钮。因此,我使用以下代码:import wx

########################################################################

class MainPanel(wx.Panel):

""""""

#----------------------------------------------------------------------

def __init__(self, parent):

"""Constructor"""

wx.Panel.__init__(self, parent=parent)

self.SetBackgroundStyle(wx.BG_STYLE_CUSTOM)

self.frame = parent

sizer = wx.BoxSizer(wx.VERTICAL)

hSizer = wx.BoxSizer(wx.HORIZONTAL)

button1 = wx.Button(self, label='Button1', pos=(100, 100), size=(175, 28))

sizer.Add(button1, 0, wx.ALL, 5)

hSizer.Add((1,1), 1, wx.EXPAND)

hSizer.Add(sizer, 0, wx.TOP, 100)

hSizer.Add((1,1), 0, wx.ALL, 75)

self.SetSizer(hSizer)

self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground)

#----------------------------------------------------------------------

def OnEraseBackground(self, evt):

"""

Add a picture to the background

"""

# yanked from ColourDB.py

dc = evt.GetDC()

if not dc:

dc = wx.ClientDC(self)

rect = self.GetUpdateRegion().GetBox()

dc.SetClippingRect(rect)

dc.Clear()

bmp = wx.Bitmap("admin.png")

dc.DrawBitmap(bmp, 0, 0)

########################################################################

class MainFrame(wx.Frame):

""""""

#----------------------------------------------------------------------

def __init__(self):

"""Constructor"""

wx.Frame.__init__(self, None, size=(320, 243))

panel = MainPanel(self)

self.Center()

########################################################################

class Main(wx.App):

""""""

#----------------------------------------------------------------------

def __init__(self, redirect=False, filename=None):

"""Constructor"""

wx.App.__init__(self, redirect, filename)

dlg = MainFrame()

dlg.Show()

#----------------------------------------------------------------------

if __name__ == "__main__":

app = Main()

app.MainLoop()

但是问题是button1没有得到正确的安置-无论我设置了什么

pos=(100, 100), size=(175, 28)值-它被放在相同的位置(?)在

我也不想使用“最大化”、“最小化”和“还原”按钮选项—可能只是一个关闭窗口的按钮—如何从框架/应用程序窗口中删除默认的“最大化”、“最小化”和“还原”按钮?在

=======更新=====

下面是我需要创建图形用户界面的文字和按钮的确切图像-我尝试了很多创建按钮,像这样或图形,但我无法-我已经发布了代码-请让我知道我如何才能做到这一点?在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个使用wxPython插入table展示表格,支持增、删、改、查的实例代码: ```python import wx import wx.grid as gridlib class MyGrid(gridlib.Grid): def __init__(self, parent): gridlib.Grid.__init__(self, parent) # 创建表格 self.CreateGrid(5, 5) # 设置行和列的大小 for i in range(5): self.SetRowSize(i, 25) self.SetColSize(i, 125) # 设置表格头 self.SetColLabelValue(0, "ID") self.SetColLabelValue(1, "Name") self.SetColLabelValue(2, "Age") self.SetColLabelValue(3, "Gender") self.SetColLabelValue(4, "Occupation") # 设置表格数据 self.SetCellValue(0, 0, "001") self.SetCellValue(0, 1, "John") self.SetCellValue(0, 2, "25") self.SetCellValue(0, 3, "Male") self.SetCellValue(0, 4, "Engineer") # 增行 def add_row(self): self.AppendRows(1) # 删除行 def delete_row(self): selected_row = self.GetSelectedRows()[0] self.DeleteRows(pos=selected_row, numRows=1) # 修改单元格 def update_cell(self, row, col, value): self.SetCellValue(row, col, value) # 查询单元格 def query_cell(self, row, col): return self.GetCellValue(row, col) class MyFrame(wx.Frame): def __init__(self, parent, title): wx.Frame.__init__(self, parent, title=title, size=(500, 300)) # 创建界面 panel = wx.Panel(self) vbox = wx.BoxSizer(wx.VERTICAL) grid = MyGrid(panel) vbox.Add(grid, 1, wx.EXPAND) hbox = wx.BoxSizer(wx.HORIZONTAL) add_button = wx.Button(panel, label="Add") add_button.Bind(wx.EVT_BUTTON, lambda event: grid.add_row()) delete_button = wx.Button(panel, label="Delete") delete_button.Bind(wx.EVT_BUTTON, lambda event: grid.delete_row()) update_button = wx.Button(panel, label="Update") update_button.Bind(wx.EVT_BUTTON, lambda event: grid.update_cell(0, 0, "002")) query_button = wx.Button(panel, label="Query") query_button.Bind(wx.EVT_BUTTON, lambda event: print(grid.query_cell(0, 0))) hbox.Add(add_button, 1, wx.EXPAND) hbox.Add(delete_button, 1, wx.EXPAND) hbox.Add(update_button, 1, wx.EXPAND) hbox.Add(query_button, 1, wx.EXPAND) vbox.Add(hbox, 0, wx.EXPAND) panel.SetSizer(vbox) if __name__ == '__main__': app = wx.App() frame = MyFrame(None, "Table Example") frame.Show() app.MainLoop() ``` 在这个示例,我们创建了一个MyGrid类,继承自wxPython的Grid类,并实现了添加行、删除行、修改单元格和查询单元格等方法。然后,我们在MyFrame创建了界面,并将MyGrid添加到界面。同时,我们为界面按钮绑定相应的事件,以实现增、删、改、查功能。最后,我们启动了wxPython应用程序的主循环,以显示界面。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值