Я пытаюсь сделал немного графики с хорошим цветовым градиентом и текстИспользуйте функцию WxPython DrawText, чтобы добавить текст в растр
градиент цвета теперь работает нормально (только тестирование так код все еще грязный) но текст не отображается
Может кто-нибудь, пожалуйста, скажите мне, что случилось с моим кодом?
#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
Created on Tue Apr 24 13:31:18 2012
@author: ksr
"""
import os
import scipy
import pickle
import shutil
import matplotlib.pyplot as plt
from os.path import join as opj
from os import getcwd as cwd
from os import listdir as ld
import wx
def dec2hex(n):
"""return the hexadecimal string representation of integer n"""
return "%X" % n
def hex2dec(s):
"""return the integer value of a hexadecimal string s"""
return int(s, 16)
def main(text):
app = wx.PySimpleApp()
# Bitmap und DC (Device Context) erstellen
bitmap = wx.EmptyBitmap(width = 500, height = 500)
dc = wx.MemoryDC(bitmap) # Dieser DC zeichnet nur im Speicher
# Hintergrund gelb ausmalen
dc.SetBackground(wx.Brush('#FFFFFF', wx.SOLID))
dc.Clear()
# GraphicsContext erstellen (damit sehen die Bilder besser aus)
gc = wx.GraphicsContext_Create(dc)
x = 0
y = 0
far = 0
z = 0
for i in range(0,2001):
if z%5 == 0 and i < 1000:
far += 1
z = 0
elif z%5 == 0 and i > 1000:
far -= 1
z = 0
farbe = dec2hex(far)
# Grünen Stift zuweisen
pen = wx.Pen("#%s0000"%(str(farbe.rjust(2,'0'))), 2, wx.SOLID)#,str(farbe.rjust(2,'0'))
gc.SetPen(pen)
# Zwei horizontale Linien zeichnen
gc.DrawLines(((x, y), (256, 256)))
print x,y,farbe.rjust(2,'0'),i
if x < 500 and y == 0:
x+=1
elif x == 500 and y < 500:
y+=1
elif y == 500 and x > 0:
x-=1
elif x == 0 and y > 0:
y-=1
z+=1
gc.DrawText('Hello',100,100)
# Bitmap vom DC abtrennen und als PNG speichern
dc.SelectObject(wx.NullBitmap)
bitmap.SaveFile("new_image.png", wx.BITMAP_TYPE_PNG)
if __name__ == "__main__":
main()
спасибо! У меня никогда не было таких ошибок, как вы. Его немного запутывает, поэтому не могли бы вы рассказать, пожалуйста, какую среду программирования вы используете? (Я использую Spyder под ubuntu 10.04) –
Я использую [PyScripter] (http://code.google.com/p/pyscripter/) на Windows, запуск удаленного Python движка для Wx. – Boud
Я был бы удивлен, что вы каким-то образом не получили Traceback. Разве это не отображается на выходе IDE где-то? Его можно было поймать, отобразить, а затем заставить wx продолжать работать с следующей инструкцией. – Boud