wxpython:如何使用按钮显示和隐藏一种形状

爸爸

您好,我正在尝试创建一个开关按钮和两个圆圈,一个圆圈是白色,另一个圆圈是红色,圆圈代表一个LED,当我按下时,我想看到红色圆圈,然后再次按下,看到白色。我已经编写了这段代码,但是我不会在两个面板上使用它并调用on switch panel函数。还有其他方法吗?我的意思是如果我可以将on按钮与红色圆圈绑定在一起,并隐藏白色,何时我再次按下相同的按钮或关闭标签的另一个按钮以隐藏红色并显示白色吗?

这是代码:

`import wx

class PanelOne(wx.Panel):

    def __init__(self, parent):
        wx.Panel.__init__(self, parent=parent)
        button =wx.Button(self, label="Turn ON", pos=(160, 130))
        button.Bind(wx.EVT_BUTTON, parent.onSwitchPanels)
        self.Bind(wx.EVT_PAINT, self.OnPaint)

    def OnPaint(self, evt):
        dc = wx.PaintDC(self)
        dc.Clear() 
        dc.SetBrush(wx.Brush('White'))
        dc.DrawCircle(200, 230, 35)


class PanelTwo(wx.Panel):

    def __init__(self, parent):
        wx.Panel.__init__(self, parent=parent)
        button =wx.Button(self, label="Turn OFF", pos=(160, 130))
        button.Bind(wx.EVT_BUTTON, parent.onSwitchPanels)
        self.Bind(wx.EVT_PAINT, self.OnPaint)

    def OnPaint(self, evt):
        dc = wx.PaintDC(self)
        dc.Clear() 
        dc.SetBrush(wx.Brush('Red'))
        dc.DrawCircle(200, 230, 35)


class MainForm(wx.Frame):

    def __init__(self):
        wx.Frame.__init__(self, None, wx.ID_ANY,"LED" )

        self.panel_one = PanelOne(self)
        self.panel_two = PanelTwo(self)
        self.panel_two.Hide()

        self.sizer = wx.BoxSizer(wx.VERTICAL)
        self.sizer.Add(self.panel_one, 1, wx.EXPAND)
        self.sizer.Add(self.panel_two, 1, wx.EXPAND)
        self.SetSizer(self.sizer)


    def onSwitchPanels(self, event):
        if self.panel_one.IsShown():
            self.SetTitle("LED")
            self.panel_one.Hide()
            self.panel_two.Show()
        else:
            self.SetTitle("LED")
            self.panel_one.Show()
            self.panel_two.Hide()
        self.Layout()

if __name__ == "__main__":
    app = wx.App(False)
    frame = MainForm()
    frame.Show()
    app.MainLoop()`
约里兹

这是使用单个面板更改相同按钮和相同圆圈的一种方法。

import wx


class PanelOne(wx.Panel):

    def __init__(self, parent):
        wx.Panel.__init__(self, parent=parent)
        self.state = [('White', 'Turn ON'), ('Red', 'Turn OFF')]
        self.button = wx.Button(self, label=self.state[0][1], pos=(160, 130))
        self.button.Bind(wx.EVT_BUTTON, self.switch_state)
        self.Bind(wx.EVT_PAINT, self.OnPaint)

    def OnPaint(self, evt):
        dc = wx.PaintDC(self)
        dc.Clear()
        dc.SetBrush(wx.Brush(self.state[0][0]))
        dc.DrawCircle(200, 230, 35)

    def switch_state(self, event):
        self.state.append(self.state.pop(0))
        self.button.SetLabel(label=self.state[0][1])
        self.Refresh()


class MainForm(wx.Frame):

    def __init__(self):
        wx.Frame.__init__(self, None, wx.ID_ANY, "LED")
        self.panel_one = PanelOne(self)
        self.sizer = wx.BoxSizer(wx.VERTICAL)
        self.sizer.Add(self.panel_one, 1, wx.EXPAND)
        self.SetSizer(self.sizer)


if __name__ == "__main__":
    app = wx.App(False)
    frame = MainForm()
    frame.Show()
    app.MainLoop()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有没有一种简单的方法来使用jQuery显示和隐藏许多div?

来自分类Dev

如何使用globalize和rails以一种形式显示所有翻译的字段4

来自分类Dev

如何使用一种功能逐步显示div?

来自分类Dev

如何仅以一种分辨率隐藏显示模式?

来自分类Dev

如何在 Javafx 和 Scene Builder 中使用一种事件处理程序方法管理多个按钮

来自分类Dev

有没有一种方法可以使用IPython隐藏显示的对象?

来自分类Dev

显示另一种形式的隐藏形式(使用this.Hide())

来自分类Dev

如何正确使用clip-rule =“ evenodd”,以便可以将一种形状切出另一种形状?

来自分类Dev

如何使用单选按钮显示和隐藏表格?

来自分类Dev

如何使用几个选择按钮显示和隐藏行

来自分类Dev

我将如何以一种形式使用多个单选按钮和多个组,以便每行和每列只能选择 1 个按钮?

来自分类Dev

如果它们在同一页面上,如何在另一种形式下显示一种形式的按钮

来自分类Dev

jQuery使用单选按钮隐藏和显示

来自分类Dev

如何使用 JavaScript 以一种形式验证两组单选按钮?

来自分类Dev

使用按钮从一种布局移至另一种

来自分类Dev

隐藏和显示按钮

来自分类Dev

如何从另一种形式的按钮更新 DataGridView?

来自分类Dev

对多个按钮使用一种JavaFX方法

来自分类Dev

仅在隐藏和更改字段的情况下在多个事件中使用相同的View是一种不好的做法吗?

来自分类Dev

如何使用自定义帖子类型仅显示一种分类法?

来自分类Dev

如何使用两种方法,一种来自Java Servlet,另一种来自Input按钮上的js文件

来自分类Dev

如何使用按钮显示/隐藏图像

来自分类Dev

如何使用按钮来显示/隐藏容器

来自分类Dev

当使用CSS单击特定的单选按钮时,有没有一种显示文本的方法?

来自分类Dev

有没有一种方法可以突出显示通过选择使用C#和SDKV4中创建的MS Chat BOT中的PromptOptions显示的按钮选项?

来自分类Dev

Laravel - 如何从两种形式的第一行显示编辑和删除按钮?

来自分类Dev

在wxpython中显示和隐藏框架

来自分类Dev

Joomla:如何使用一种形式进行前端和后端视图?

来自分类Dev

如何仅使用一种方法来填充ComBobox和ListBox的项目?

Related 相关文章

  1. 1

    有没有一种简单的方法来使用jQuery显示和隐藏许多div?

  2. 2

    如何使用globalize和rails以一种形式显示所有翻译的字段4

  3. 3

    如何使用一种功能逐步显示div?

  4. 4

    如何仅以一种分辨率隐藏显示模式?

  5. 5

    如何在 Javafx 和 Scene Builder 中使用一种事件处理程序方法管理多个按钮

  6. 6

    有没有一种方法可以使用IPython隐藏显示的对象?

  7. 7

    显示另一种形式的隐藏形式(使用this.Hide())

  8. 8

    如何正确使用clip-rule =“ evenodd”,以便可以将一种形状切出另一种形状?

  9. 9

    如何使用单选按钮显示和隐藏表格?

  10. 10

    如何使用几个选择按钮显示和隐藏行

  11. 11

    我将如何以一种形式使用多个单选按钮和多个组,以便每行和每列只能选择 1 个按钮?

  12. 12

    如果它们在同一页面上,如何在另一种形式下显示一种形式的按钮

  13. 13

    jQuery使用单选按钮隐藏和显示

  14. 14

    如何使用 JavaScript 以一种形式验证两组单选按钮?

  15. 15

    使用按钮从一种布局移至另一种

  16. 16

    隐藏和显示按钮

  17. 17

    如何从另一种形式的按钮更新 DataGridView?

  18. 18

    对多个按钮使用一种JavaFX方法

  19. 19

    仅在隐藏和更改字段的情况下在多个事件中使用相同的View是一种不好的做法吗?

  20. 20

    如何使用自定义帖子类型仅显示一种分类法?

  21. 21

    如何使用两种方法,一种来自Java Servlet,另一种来自Input按钮上的js文件

  22. 22

    如何使用按钮显示/隐藏图像

  23. 23

    如何使用按钮来显示/隐藏容器

  24. 24

    当使用CSS单击特定的单选按钮时,有没有一种显示文本的方法?

  25. 25

    有没有一种方法可以突出显示通过选择使用C#和SDKV4中创建的MS Chat BOT中的PromptOptions显示的按钮选项?

  26. 26

    Laravel - 如何从两种形式的第一行显示编辑和删除按钮?

  27. 27

    在wxpython中显示和隐藏框架

  28. 28

    Joomla:如何使用一种形式进行前端和后端视图?

  29. 29

    如何仅使用一种方法来填充ComBobox和ListBox的项目?

热门标签

归档