🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

832閲覧

wxPython で項目と入力のセットを縦に作るには

kensintakagi

総合スコア6

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/09/09 09:09

前提・実現したいこと

 データベースの新規入力を項目と入力のセットを縦に作りたい

エラーメッセージ 項目と入力のパネルにうまく表示されない。どちらも最後のものしか表示されない。

該当のソースコード

python 3.7.4 32bit

-- coding: utf8 --

import wx
mymedecal = wx.App()

frame = wx.Frame(None, wx.ID_ANY, '情報提供書',size=(500, 700),pos=(0, 0))
frame1 = wx.Frame(frame, wx.ID_ANY, '処方内容',size=(300, 300),pos=(100,50))

panel10 = wx.Panel(frame1, wx.ID_ANY,pos=(20,20),size=(100, 200))
panel10.SetBackgroundColour('#FF0000')
item_1 = wx.StaticText(panel10, wx.ID_ANY, '項目1')
item_2 = wx.StaticText(panel10, wx.ID_ANY, '項目2')
item_3 = wx.StaticText(panel10, wx.ID_ANY, '項目3')
item_4 = wx.StaticText(panel10, wx.ID_ANY, '項目4')

layout = wx.BoxSizer(wx.VERTICAL)
layout.Add(item_1)
layout.Add(item_2)
layout.Add(item_3)
layout.Add(item_4)

panel10.SetSizer(layout)

panel20 = wx.Panel(frame1, wx.ID_ANY,pos=(120,20),size=(100, 200))
panel20.SetBackgroundColour('#0000FF')
text_1 = wx.TextCtrl(panel20, wx.ID_ANY)
text_2 = wx.TextCtrl(panel20, wx.ID_ANY)
text_3 = wx.TextCtrl(panel20, wx.ID_ANY)
text_4 = wx.TextCtrl(panel20, wx.ID_ANY)

layout = wx.BoxSizer(wx.VERTICAL)
layout.Add(text_1)
layout.Add(text_2)
layout.Add(text_3)
layout.Add(text_4)

panel20.SetSizer(layout)

frame.Show()
frame1.Show()
mymedecal.MainLoop()

試したこと

項目か入力のみでは表示されるが、サイズが無視される。

補足情報(FW/ツールのバージョンなど)

VSCとwxPythonは最新のもの

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

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

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

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

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

guest

回答1

0

ベストアンサー

ラベルとテキストボックスの位置を合わせることを考えるとwx.FlexGridSizerを使うのがよいかと思います。背景色の指定の仕方はわからなかったのでできてません。

Python

1#-*- coding: utf8 -*- 2import wx 3mymedecal = wx.App() 4 5frame = wx.Frame(None, wx.ID_ANY, '情報提供書',size=(500, 700),pos=(0, 0)) 6frame1 = wx.Frame(frame, wx.ID_ANY, '処方内容',size=(300, 300),pos=(100,50)) 7 8item_1 = wx.StaticText(frame1, wx.ID_ANY, '項目1') 9item_2 = wx.StaticText(frame1, wx.ID_ANY, '項目2') 10item_3 = wx.StaticText(frame1, wx.ID_ANY, '項目3') 11item_4 = wx.StaticText(frame1, wx.ID_ANY, '項目4') 12 13text_1 = wx.TextCtrl(frame1, wx.ID_ANY) 14text_2 = wx.TextCtrl(frame1, wx.ID_ANY) 15text_3 = wx.TextCtrl(frame1, wx.ID_ANY) 16text_4 = wx.TextCtrl(frame1, wx.ID_ANY) 17 18layout = wx.FlexGridSizer(4, 2, 0, 5) 19 20layout.Add(item_1) 21layout.Add(text_1) 22layout.Add(item_2) 23layout.Add(text_2) 24layout.Add(item_3) 25layout.Add(text_3) 26layout.Add(item_4) 27layout.Add(text_4) 28 29frame1.SetSizer(layout) 30 31frame.Show() 32frame1.Show() 33mymedecal.MainLoop()

投稿2019/09/28 17:55

nomuken

総合スコア1627

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問