質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

2300閲覧

【python】wxpythonで終了ボタンを作りたい

EgyptianMau

総合スコア11

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/05/30 09:50

編集2022/05/30 12:23

wxpythonでパネルを使って終了ボタンを作りたいのですがうまくいきません。
パネルを使わなければ終了ボタンを作れたのですが、panelを使うとうまくいきません。
初心者の独学で醜いコードだと思いますが、どうかよろしくお願いします。

python

1import wx 2 3class MyFrame(wx.Frame): 4 def __init__(self, parent,id, title,size): 5 wx.Frame.__init__(self, parent,id, title=title,size=size) 6 panel = MyPanel(self) 7 self.Show() 8 9class MyPanel(wx.Panel): 10 def __init__(self, parent): 11 wx.Panel.__init__(self, parent) 12 self.__create_widget() 13 self.__do_layout() 14 15 def __create_widget(self): 16 self.text1 = wx.Button(self, label="終了",pos=wx.Point(100, 40)) 17 self.text1.Bind(wx.EVT_BUTTON,self.OnExit) 18 19 self.text2 = wx.TextCtrl(self, id=-1, value='bb') 20 self.text2.SetBackgroundColour('#ff00ff') 21 self.text3 = wx.TextCtrl(self, id=-1, value='cc') 22 self.text3.SetBackgroundColour('red') 23 self.text4 = wx.TextCtrl(self, id=-1, value='dd') 24 self.text4.SetBackgroundColour('pink') 25 26 def __do_layout(self): 27 sizer = wx.GridSizer(rows=2, cols=2, gap=(0, 0)) 28 sizer.Add(self.text1,0) 29 sizer.Add(self.text2,1, wx.EXPAND) 30 sizer.Add(self.text3,1, wx.EXPAND) 31 sizer.Add(self.text4,1, wx.EXPAND) 32 self.SetSizer(sizer) 33 34 def OnExit(self,event): 35 self.Close(True) 36 37if __name__ == '__main__': 38 app = wx.App(False) 39 frame = MyFrame(None, -1,"wxPython",(1000, 1000)) 40 app.MainLoop() 41

以下のようにpanelを使わなければ動作するのですが

python

1import wx 2 3class SampleFrame(wx.Frame): 4 def __init__(self, parent, ID, title): 5 wx.Frame.__init__(self, parent, title=title, size=(1000, 1000)) 6 self.__create_widget() 7 self.__do_layout() 8 def __create_widget(self): 9 self.text = wx.StaticText(self, label="Hello World",pos=wx.Point(100, 15)) 10 self.button = wx.Button(self, label="終了",pos=wx.Point(100, 40)) 11 self.button.Bind(wx.EVT_BUTTON, self.OnExit) 12 def __do_layout(self): 13 sizer = wx.BoxSizer(wx.VERTICAL) 14 sizer.Add(self.text) 15 sizer.Add(self.button) 16 self.SetSizer(sizer) 17 def OnExit(self,event): 18 self.Close(True) 19 20class SampleApp(wx.App): 21 def OnInit(self): 22 frame = SampleFrame(None, -1, "Sample wxPython") 23 self.SetTopWindow(frame) 24 frame.Show(True) 25 return True 26 27if __name__ == '__main__': 28 app = SampleApp() 29 app.MainLoop()

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

投稿2022/05/30 21:19

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問