ПРОБЛЕМЫ ПРЕДУПРЕЖДЕНИЯ GUI PYTHON GUIPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 ПРОБЛЕМЫ ПРЕДУПРЕЖДЕНИЯ GUI PYTHON GUI

Сообщение Anonymous »

У меня проблемы с графическим интерфейсом, над которым я работаю. Идея состоит в том, чтобы иметь список сигналов дерева и иметь возможность перетаскивать их на сюжет. В конечном итоге наличие длинного списка сигналов, нескольких графиков и т. Д. Однако ошибки сегментации кода после, казалось бы, случайного количества перетаскивания (иногда только один). Я разделил код до голых костей, чтобы каждый раз он высказывал одну и ту же кривую, и есть только один сигнал, выбирающий из них; В этом случае только x^2. < /p>

ниже я опубликовал код с пакетами, которые он требует. < /p>

import wx
import random
import scipy
import matplotlib
matplotlib.use('WXAgg')
from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg
from matplotlib.figure import Figure

class MainFrame(wx.Frame):
''' Create the mainframe on which all of the other panels are placed.
'''
def __init__(self):
wx.Frame.__init__(self, parent=None, title="GUI", size=(998,800))
self.SetBackgroundColour('#CCCCCC')
self.GUIBox = wx.BoxSizer(wx.HORIZONTAL)
self.P = PlotWindow(self)
self.DD = DragDrop(self)
self.GUIBox.Add(self.DD, 0, wx.LEFT | wx.ALIGN_TOP)
self.GUIBox.Add(self.P, 0, wx.LEFT | wx.ALIGN_TOP)
self.SetSizer(self.GUIBox)
return

class PlotWindow(wx.Panel):
def __init__(self, parent):
wx.Window.__init__(self, parent)
self.Figure = Figure()
self.Figure.set_size_inches(8.56, 9.115)
self.C = FigureCanvasWxAgg(self, -1, self.Figure)
self.SP = self.Figure.add_subplot(111)
self.a = [0,1,2,3,4,5]
self.b = [0,1,4,9,16,25]
self.signals = [self.b]

def rePlot(self):
self.SP.clear()
c = scipy.zeros(6)
for i in range(0, 6, 1):
c = self.b*random.uniform(0, 2)
self.SP.plot(self.a,c)
self.C.draw()

class MyTextDropTarget(wx.TextDropTarget):

def __init__(self, objt):
wx.TextDropTarget.__init__(self)
self.Objt = objt

def OnDropText(self, x, y, data):
self.Objt.rePlot()

class DragDrop(wx.Panel):

def __init__(self, parent):
wx.Panel.__init__(self, parent, style=wx.BORDER_RAISED)
self.SetBackgroundColour('#CCCCCC')
self.tree = wx.TreeCtrl(self, -1, size=(270,700))

# Add root
root = self.tree.AddRoot("Signals")
self.tree.AppendItem(root, "Square")

dt = MyTextDropTarget(self.GetParent().P)
self.GetParent().P.SetDropTarget(dt)
self.Bind(wx.EVT_TREE_BEGIN_DRAG, self.OnDragInit)

self.VBox = wx.BoxSizer(wx.VERTICAL)
self.VBox.Add(self.tree, 0)
self.SetSizer(self.VBox)

def OnDragInit(self, event):
text = self.tree.GetItemText(event.GetItem())
tdo = wx.TextDataObject(text)
tds = wx.DropSource(self.tree)
tds.SetData(tdo)
tds.DoDragDrop(True)

class App(wx.App):
def OnInit(self):
self.dis = MainFrame()
self.dis.Show()
return True

app = App()
app.MainLoop()
< /code>

Я попытался взять как можно больше ненужного кода; Любая помощь будет очень оценена! < /p>

Ура! < /p>

Подробнее здесь: https://stackoverflow.com/questions/102 ... p-problems
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»