Архив метки: wx

wxPython пример рабочего окна с кнопкой

# -*- coding: utf-8 -*-
"""
# Самый простой пример окна.

# Отсюда: https://wiki.wxpython.org/Getting%20Started

import wx

# Create a new app, don't redirect stdout/stderr to a window.
app = wx.App(False)
# A Frame is a top-level window.
frame = wx.Frame(None, wx.ID_ANY, "Hello World")
frame.Show(True)     # Show the frame.
app.MainLoop()
"""

import wx


class MyFrame(wx.Frame):
    """Главное окно."""

    def __init__(self, parent, title):
        wx.Frame.__init__(self, parent, title=title, size=(200, 100))
        # текстовое многострочное поле
        self.text_input = wx.TextCtrl(
            self,
            style=wx.TE_MULTILINE,
            size=(400, 200),
        )
        # кнопка
        self.exit_button = wx.Button(
            self,
            label="Exit",
            pos=(300, 300),
            size=(100, 100)
        )
        self.Size = (500, 500)
        # Привязка нажатия кнопки к запуску метода главного окна
        self.Bind(wx.EVT_BUTTON, self.my_exit, self.exit_button)
        self.Show(True)

    def my_exit(self, param):
        """Самодельный метод - Закрыть главное окно."""
        # quit()  # раскоментировать чтоб выход заработал
        print(f"param: {dir(param)}")  # что во втором параметре
        self.text_input.SetValue("Exit")  # изменить текст


app = wx.App(False)
frame = MyFrame(None, 'Small editor - Тестовый редактор')
app.MainLoop()