WxPython:显示问题(在设备上下文上)

WxPython:显示问题(在设备上下文上),wxpython,device,gdi,Wxpython,Device,Gdi,在网上搜索了好几个小时我的问题的解决方案后,我仍然被卡住了。以下是显示问题: 作为一名编程初学者,多亏了WxPython,我制作了一个图形界面来显示文本文件的一些值,它与经典版本的WxPython完美结合 与Phoenix中的代码完全相同,结果是在y方向上几个像素内“展平”图形。。。我真的不明白为什么 我只是创建了一个绘制Dc来显示X和Y方向的图形。在凤凰城,Y轴完全变平,相关的基本图例无法读取!。。。这也出现在windows XP中的wxpythonclassic中,但在windows 7中的

在网上搜索了好几个小时我的问题的解决方案后,我仍然被卡住了。以下是显示问题:

作为一名编程初学者,多亏了
WxPython
,我制作了一个图形界面来显示文本文件的一些值,它与经典版本的
WxPython
完美结合

与Phoenix中的代码完全相同,结果是在y方向上几个像素内“展平”图形。。。我真的不明白为什么

我只是创建了一个绘制Dc来显示X和Y方向的图形。在凤凰城,Y轴完全变平,相关的基本图例无法读取!。。。这也出现在windows XP中的
wxpython
classic中,但在windows 7中的
wxpython
classic中效果非常好

以下是我的
OnPaint
方法:

def OnPaint(self, event):
    self.dc = wx.PaintDC(self)
    self.dc.Clear()

    self.dc.SetBrush(wx.Brush('#ffffff', wx.TRANSPARENT))
    self.dc.SetPen(wx.Pen((100,100,100),style=wx.SOLID))
    self.dc.DrawRectangle(10, 10, 210, 30)

    if self.Cadre_situation == 1:
        self.dc.SetPen(wx.Pen('#FF0000'))
        self.dc.DrawRectangle(460, 528, 330, 80)

    self.dc.SetDeviceOrigin(330, 178)
    self.dc.SetAxisOrientation(True, True)
    self.dc.SetPen(wx.Pen('#4169E1'))
    # font = self.dc.GetFont()
    font = wx.Font(11, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.NORMAL)
    font.SetPointSize(8.5)
    self.dc.SetFont(font)
    self.dc.DrawLine(1, 1, 530, 1)
    self.dc.DrawLine(1, 1, 1, 120)

    Increment = 0
    for i in range(0, 140, 20):
        self.dc.DrawText(str(self.Max_Echelle / 6 * Increment) + ' m3/sec', -75, i+10)
        self.dc.DrawLine(2, i, -5, i)
        Increment += 1

    for i in range(140, 590, 150):
        self.dc.DrawLine(i+5, 7, i+5, -7)
        self.dc.DrawLine(1, 7, 1, -7)
    for i in range(4):
        self.dc.DrawText(self.times[i], i*150-40, -12)

    self.dc.SetPen(wx.Pen('#4169E1'))
    for i in range(10, 310, 10):
        self.dc.DrawSpline(self.data)

    self.dc.DrawLine(1 + 2 * self.Nombre_de_reculs, 1, 1 + 2 * self.Nombre_de_reculs, 120)

    self.dc.SetPen(wx.Pen('#FF00FF'))
    for i in range(10, 310, 10):
        self.dc.DrawSpline(self.discharge_gaul)

    self.dc.SetPen(wx.Pen('#4169E1'))
    self.dc.SetDeviceOrigin(860, 178)
    self.dc.DrawLine(1, 1, 1, 120)
    for i in range(0, 121, 20):
        self.dc.DrawText(str((i)/20) + ' m', 10, i+10)
        self.dc.DrawLine(2, i, -5, i)
    event.Skip()
当我们想要在设备上下文中绘制一个简单的图形时,问题似乎出现在轴方向上:

self.dc.SetAxisOrientation(True, True)
事实上,当我使用上面的公式时,Y方向不能正常工作(Y方向仍然从上到下显示,图形大小除以100左右!),但是如果我试图在参数中使用“真,假”,甚至“假,假”,显示器以适当的比例工作,但图形是颠倒的

在新Phoenix版本中设置轴方向是否有任何更改?我的图表只是将曲线从基本数字显示到文本文件中