2013-06-18 4 views
0

У меня есть сценарий, разработанный для создания планировщика задач, где в окне планировщика есть 3 кнопки «Добавить», «Изменить» и «Удалить». Нажав «Добавить», вы откроете окно планировщика задач, в котором пользователь может задать задачу, дату, время и имя задачи и т. Д. После применения настроек, а при нажатии «ОК» графический интерфейс возвращается в окно планировщика, обновленное с помощью задайте имя его имени в списке. В окне «Редактировать» используется для редактирования планировщика задач, выбранного из списка. У меня есть класс с именем «класс AddTask», который является событием, созданным при нажатии кнопки «Добавить». Аналогично, когда нажал на «Редактировать». Я вызываю тот же класс AddTask, создавая объект, из которого я вызываю функцию редактирования. Я хочу, чтобы эти «AddTask» и «EditTask» были независимыми классами и функциями, как и ожидалось.создать графический интерфейс для планировщика задач с использованием сценария python

Я хочу, чтобы графический интерфейс для кнопки «Добавить» и «Редактировать» должен быть таким же, но функциональность должна быть другой, для ADD она должна добавить задачу и обновить ее в списке планировщика, тогда как для EDIT она должна отредактировать задачу планировщик, который выбран из списка. enter image description here

ответ

0

Лично я использую виджет ObjectListView, а не ListCtrl, поскольку я считаю, что ObjectListView легче обновлять. В любом случае, для кадра «Добавить/редактировать» вы можете просто добавить аргумент «поля» или некоторые из них и установить его в «Нет».

class AddTask(wx.Frame): 
    #------------------------------------------------------------ 
    def __init__(self, parent, id, title, fields=None): 

Тогда вы можете назвать это обычным способом для добавления данных. Однако, когда вы идете называть его для редактирования, вы передадите список (или dict) значений из ListCtrl, чтобы заполнить поля в этом фрейме. Вам нужно добавить что-то вроде

if fields: 
    # set the values of the widgets as necessary 
    self.field.SetValue("Task Name") 
+0

Как я getitemlist и setitemlist в objectviewlist ?? Мне нужно установить список на основе значений, установленных из кадра Addtask! Я пробовал с self.list_ctrl.SetObjects (self.List), но не работал. – Aramanethota

+0

SetObjects принимает список объектов или словарей. Возможно, эта статья поможет вам: http://www.blog.pythonlibrary.org/2009/12/23/wxpython-using-objectlistview-instead-of-a-listctrl/ –

+0

мы используем 'self.list_ctrl.InsertStringItem (self .index, taskname) ', используя wxListCtrl, чтобы обновить список. Я хочу, чтобы команда, аналогичная этой, работала с ObjectListView. – Aramanethota

0

Это то, что я пытался

def UpdateList(self,task): 
    run="Disabled" 
    status="Not Scheduled" 
    date=datetime.now().strftime("%d-%m-%Y") 
    self.List=[{"taskname":"%s"%(task),"run":"%s"(run),"date":"%s"(date),"status":"%s"%(status)}] 
    list1=self.listOlv.SetObjects(self.List) 
Смежные вопросы