Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 仅水平重新调整wx.Dialog_Python_Wxpython - Fatal编程技术网

Python 仅水平重新调整wx.Dialog

Python 仅水平重新调整wx.Dialog,python,wxpython,Python,Wxpython,是否有一种方法允许自定义wx.对话框仅在水平方向上调整大小?我尝试过使用GetSize(),然后使用SetSizeHints()设置窗口的最小和最大高度,但由于某些原因,它总是允许窗口的大小调整一点,而且看起来相当俗气。我唯一的另一个选择是硬编码最小和最大高度,但我认为这不是一个好主意 相关代码: class SomeDialog(wx.Dialog): def __init__(self, parent):

是否有一种方法允许自定义wx.对话框仅在水平方向上调整大小?我尝试过使用GetSize(),然后使用SetSizeHints()设置窗口的最小和最大高度,但由于某些原因,它总是允许窗口的大小调整一点,而且看起来相当俗气。我唯一的另一个选择是硬编码最小和最大高度,但我认为这不是一个好主意

相关代码:

class SomeDialog(wx.Dialog):

    def __init__(self, parent):                               
        wx.Dialog.__init__(self, parent, title="blah blah",
                           style=wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER)
        size = self.GetSize()
        self.SetSizeHints(minW=size.GetWidth(), minH=size.GetHeight(),
                          maxH=size.GetHeight())
操作系统:Windows 7
python版本:2.5.4

wxPython版本:2.8.10

如果不想更改高度,为什么将“最小高度”和“最大高度”设置为相同的值(要强制的值)是个坏主意?当然,您可以使用
getbetize
或相关方法获得“最佳值”的系统估计值。虽然我发现设置大小提示并没有产生相同的效果(我认为应该是这样)这一事实很奇怪。。。您使用的是什么平台wxpython,以及Python、wxpython和平台/操作系统本身的哪个版本?

我不喜欢硬编码这些值,因为我不确定它在不同的计算机上是否相同,这是一个PITA来计算每次我在对话框中更改某些内容时自动渲染的高度的精确值。我已经在问题中添加了版本细节:)我认为我已经完成了GetBestSize路线。反正是类似的东西;我让布局的东西做它的事情,然后得到当前的几何体,并设置最小值和最大值相同的值。它工作得很好。注意客户端大小和帧大小之间的差异;我也不记得那里的细节,但那可能会把你绊倒。或者,您的顶级sizer可以是水平的,而不是标记为EXPAND吗?@hawk,但无论如何,您必须获得“最佳高度”(这将考虑所有系统依赖关系),即使只是设置大小提示——我绝对不是说硬编码,只是尝试将最小和最大高度设置为“最佳”(正如您试图在上面做的,但通过大小提示)。当然,您必须在任何时候更改对话框时再次调用此简单的“设置固定高度”函数——但如果大小提示设置有效,您也会这样做!啊!我明白了!我在调用self.SetSizerAndIt(…)之前放置了上面的代码。GetBestSize()现在可以工作了,谢谢:)@hawk,太好了,我开始担心我必须重新开始寻找我的卡巴斯基磁盘,以便能够把我新买的便宜的win7笔记本电脑放到网上——很高兴我能一直拖延(还有更紧急的搬家后任务;-),尤其是你的问题已经解决了!