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

时间:2015-02-01 17:47:06

标签: wxpython device device-context

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

作为编程的初学者,我通过WxPython完成了图形界面,以显示文本文件的某些值,这与经典版本的WxPython完美配合。 / p>

凤凰城完全相同的代码导致"扁平化"在几个像素内的y方向图...我真的不明白为什么......

我只是创建一个Paint Dc来显示具有X和Y方向的图形。在凤凰城,Y轴是完全平坦的,相关的基本图例是不可读的!...这也出现在Windows XP中wxpython经典,但在Windows 7中与wxpython经典完美配合... < / p>

以下是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之类的东西!),但是如果我&# 39; m试图把&#34; True,False&#34;甚至&#34; False,False&#34;在参数中,显示器以适当的比例工作,但图表是颠倒的......

在新凤凰版中设置轴方向是否有任何变化?我的图表只显示从基本数字到文本文件的曲线。

0 个答案:

没有答案