gpt4 book ai didi

python - 如何使 wx.TextEntryDialog 变大和可调整大小

转载 作者:太空狗 更新时间:2023-10-29 21:35:39 25 4
gpt4 key购买 nike

我创建了一个 wx.TextEntryDialog如下:

import wx

dlg = wx.TextEntryDialog(self, 'Rules:', 'Edit rules',
style=wx.TE_MULTILINE|wx.OK|wx.CANCEL)
dlg.SetValue(self.rules_text.Value)
if dlg.ShowModal() == wx.ID_OK:

这导致对话框太小,无法满足我的需要,而且无法调整大小:

small dialog box

我的问题是:如何使对话框变大并可调整大小?我尝试添加标志 wx.DEFAULT_DIALOG_STYLEwx.RESIZE_BORDER,但这除了用点替换文本外没有任何效果:

dlg = wx.TextEntryDialog(self, 'Rules:', 'Edit rules', 
style=wx.TE_MULTILINE|wx.OK|wx.CANCEL|wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER)

small, garbled dialog box

最佳答案

是时候学习如何编写自己的对话了! ;-)

TextEntryDialog 等内置对话框仅适用于最基本的程序。如果您需要大量自定义,则需要编写自己的对话框。

这是一个示例,这应该适合您。

import wx

class TextEntryDialog(wx.Dialog):
def __init__(self, parent, title, caption):
style = wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER
super(TextEntryDialog, self).__init__(parent, -1, title, style=style)
text = wx.StaticText(self, -1, caption)
input = wx.TextCtrl(self, -1, style=wx.TE_MULTILINE)
input.SetInitialSize((400, 300))
buttons = self.CreateButtonSizer(wx.OK|wx.CANCEL)
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(text, 0, wx.ALL, 5)
sizer.Add(input, 1, wx.EXPAND|wx.ALL, 5)
sizer.Add(buttons, 0, wx.EXPAND|wx.ALL, 5)
self.SetSizerAndFit(sizer)
self.input = input
def SetValue(self, value):
self.input.SetValue(value)
def GetValue(self):
return self.input.GetValue()

if __name__ == '__main__':
app = wx.PySimpleApp()
dialog = TextEntryDialog(None, 'Title', 'Caption')
dialog.Center()
dialog.SetValue('Value')
if dialog.ShowModal() == wx.ID_OK:
print dialog.GetValue()
dialog.Destroy()
app.MainLoop()

关于python - 如何使 wx.TextEntryDialog 变大和可调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3551249/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com