我编写了一个使用wxpython编写的程序,在Windows中运行良好,但在Linux中测试时出现了一些显示问题。
这里有一个测试应用程序,演示了FigureCanvasWxAgg在面板中调整大小时出现的问题。可以看到,面板本身会随着调整大小事件而改变大小,但FigureCanvasWxAgg并不会跟随调整大小,然而这在Windows中不是问题。
import wx
import matplotlib.figure as plt
from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanvas
import wx.lib.inspection
class Test(wx.Frame):
def __init__(self):
super(Test, self).__init__(parent=None, id=-1)
self.figure = plt.Figure()
self.panel = wx.Panel(self, 1)
self.figurepanel = FigureCanvas(self.panel, -1, self.figure)
self.axes1 = self.figure.add_subplot(111)
frame_box = wx.BoxSizer(wx.VERTICAL)
frame_box.AddStretchSpacer(prop=1)
frame_box.Add(self.panel, flag=wx.EXPAND, proportion=2)
frame_box.AddStretchSpacer(prop=1)
main_box = wx.BoxSizer(wx.HORIZONTAL)
main_box.AddStretchSpacer(prop=1)
main_box.Add(frame_box, flag=wx.EXPAND, proportion=1)
main_box.AddStretchSpacer(prop=1)
self.SetSizer(main_box)
self.Show()
self.Layout()
def main():
app = wx.App()
Test()
wx.lib.inspection.InspectionTool().Show()
app.MainLoop()
if __name__ == '__main__':
main()
我非常感谢您能回答以下问题:
- 如何解决在Linux中调整FigureCanvasWxAgg大小的问题
- wxPython在Windows和Linux上进行GUI编程的一般方式是否有所区别