我在 wxpython 中编写了一个程序,它在 windows 中运行良好,但是在 lunix 中测试时,我遇到了一些在 linux 中都发生的显示问题。
这是一个测试应用程序,它演示了在面板中调整 FigureCanvasWxAgg 大小的问题,正如面板本身遵循 resizingevent 但 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 大小的问题
- 在 Windows 和 Linux 上使用 wxPython 进行 GUI 编程的一般方式有什么不同吗?