【发布时间】:2020-07-01 15:02:38
【问题描述】:
我刚刚进入 Python 3.6 的 wxpython 并且遇到了障碍。我只是不知道如何使元素/小部件随屏幕缩放!我知道你必须使用sizer,但仅此而已,我对编程还是很陌生,所以仅仅阅读文档并没有帮助。如果有人可以对一些有效的代码进行采样,我将非常感激,因为我可以通读它并找出我做错了什么。绘制出我想用窗口大小缩放的 GUI 的代码如下,关键思想是 TextCtrl 缩放,其他元素并不需要缩放。
def createGUI(self):
panel = wx.Panel(self)
menuBar = wx.MenuBar()
menuButton = wx.Menu()
newItem = wx.MenuItem(menuButton, wx.ID_NEW, 'New Note\tCtrl+N')
delItem = wx.MenuItem(menuButton, wx.ID_DELETE, 'Delete Note\tCtrl+Backspace')
saveItem = wx.MenuItem(menuButton, wx.ID_SAVE, 'Save\tCtrl+S')
exitItem = wx.MenuItem(menuButton, wx.ID_EXIT, 'Quit\tCtrl+Q')
menuButton.Append(newItem)
menuButton.Append(saveItem)
menuButton.Append(delItem)
menuButton.Append(exitItem)
menuBar.Append(menuButton, 'Menu')
self.SetMenuBar(menuBar)
self.Bind(wx.EVT_MENU, self.new, newItem)
self.Bind(wx.EVT_MENU, self.delete, delItem)
self.Bind(wx.EVT_MENU, self.save, saveItem)
self.Bind(wx.EVT_MENU, self.onExit, exitItem)
self.noteText = wx.TextCtrl(panel)
self.noteText.AppendText(self.notecontent)
self.Bind(wx.EVT_CLOSE, self.onExit)
self.SetTitle(f'Welcome {self.username}! You are working on {self.notepath}')
self.Centre()
self.Show(True)
【问题讨论】:
-
发布您到目前为止所做的事情,以便可以根据您的要求量身定制答案,并且可以解释您所犯的任何错误。
-
@RolfofSaxony 我已经添加了有问题的代码,希望对您有所帮助。
-
该代码中的关键问题是,尽管没有使用 sizers,但您不必这样做,您可以根据需要调整小部件的大小和位置,您还没有声明任何大小或位置。结果是任何投入的小部件都是默认大小和默认位置。如果你有不止一件物品,它们都会相互重叠,因为没有定位说明。
标签: python python-3.x wxpython python-module