gpt4 book ai didi

python - 调整 wx.TextCtrl 小部件的大小?

转载 作者:太空宇宙 更新时间:2023-11-04 01:23:14 25 4
gpt4 key购买 nike

我正在学习使用 wxWidgets 和 Python,但我在弄清楚如何在框架内调整小部件的大小方面遇到了一些麻烦。

我的印象是,我可以通过在调用构造函数时为它们提供自定义 size=(x,y) 值来设置各种小部件的大小。这段代码是从 wxPython 的示例中复制粘贴出来的,我已经将 value="example",pos=(0,0) 和 size=(100,100) 值添加到 wx.TextCtrl() 构造函数中,但是当我运行在这个程序中,文本控件占据了整个 500x500 框架。我不确定为什么,如果您能给我任何帮助以使其正常工作,我将不胜感激。

import wx

class MainWindow(wx.Frame):
def __init__(self, parent, title):
wx.Frame.__init__(self, parent, title=title, size=(500,500))
self.control = wx.TextCtrl(self,-1,value="example",pos=(0,0),size=(100,100))
self.CreateStatusBar() # A Statusbar in the bottom of the window

# Setting up the menu.
filemenu= wx.Menu()

# wx.ID_ABOUT and wx.ID_EXIT are standard IDs provided by wxWidgets.
filemenu.Append(wx.ID_ABOUT, "&About"," Information about this program")
filemenu.AppendSeparator()
filemenu.Append(wx.ID_EXIT,"E&xit"," Terminate the program")

# Creating the menubar.
menuBar = wx.MenuBar()
menuBar.Append(filemenu,"&File") # Adding the "filemenu" to the MenuBar
self.SetMenuBar(menuBar) # Adding the MenuBar to the Frame content.
self.Show(True)

app = wx.App(False)
frame = MainWindow(None, "Sample editor")
app.MainLoop()

最佳答案

请阅读sizers overview在手册中了解如何正确调整小部件的大小。

至于您的特定示例,这是一个异常(exception),因为 wxFrame 总是调整其唯一窗口的大小以填充其整个客户区——只是因为这几乎总是您想要的。然而,通常这个唯一的窗口是一个 wxPanel,它又包含其他控件并使用 sizer 来定位它们。

TL;DR:您永远不应使用绝对定位,即以像素为单位指定位置。

关于python - 调整 wx.TextCtrl 小部件的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19883026/

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