任务调度程序的Wxpython gui

时间:2013-04-12 06:05:52

标签: python-2.7 wxpython

我被要求开发一个类似于任务调度程序中的触发器窗口的GUI。我正在尽力做到这一点,我在单帧中创建多个面板.Below是我的GUI假设的快照看起来像。请帮帮我。

task scheduler

3 个答案:

答案 0 :(得分:0)

我很少看到需要在框架内放置多个面板,除非我正在做一个wx.Notebook。也许这就是你要找的东西。 wx.Notebook易于使用,wxPython中还包含许多其他“书籍”控件。以下是几个链接:

如果您确实需要框架中的多个面板,那么是否需要组织控件及其布局?我会改用sizer。 Sizer为您提供更多灵活性。以下是一些信息:

如果您想要知道如何在面板之间切换,我已经为您提供了保障:http://www.blog.pythonlibrary.org/2010/06/16/wxpython-how-to-switch-between-panels/

答案 1 :(得分:0)

使用sizer来布置我在图片上绘制的控件的位置,大致是sizer所在的位置。

蓝色=垂直。

绿色=水平。

enter image description here

答案 2 :(得分:0)

下面是我使用wxpython创建的调度程序窗口。

class SchedulerWindow(wx.Frame):
""" This generates the GUI for Setting Window"""
#------------------------------------------------------------------------------------
    def __init__(self, parent, id, title):
        wx.Frame.__init__(self, parent, id, title="Scheduler", style=wx.DEFAULT_FRAME_STYLE ^ wx.RESIZE_BORDER ^ wx.MAXIMIZE_BOX, size=(600,500))
        panel=wx.Panel(self)
        sizer = wx.GridBagSizer(5, 5)
        font = wx.Font(10, wx.DEFAULT, wx.NORMAL, wx.BOLD)
        self.field = wx.TextCtrl(panel,pos=(65,20),size=(400,20))
        field_lbl=wx.StaticText(panel,-1, label='Name:', pos=(20,20))
        field_lbl.SetFont(font)
        line = wx.StaticLine(panel,pos=(0,50), size=(600,1))
        #sizer.Add(line, pos=(1,30), span=(1, 5),flag=wx.EXPAND|wx.BOTTOM, border=10)
        Box=wx.StaticBox(panel,label='Settings',size=(565,200),pos=(15,60))
        Box1=wx.StaticBox(panel,label='',size=(430,120),pos=(120,120))
        boxsizer = wx.StaticBoxSizer(Box, wx.VERTICAL)
        boxsizer.Add(wx.RadioButton(panel,label="One time",pos=(25,90)),flag=wx.LEFT|wx.TOP, border=5)
        boxsizer.Add(wx.RadioButton(panel,label="Daily",pos=(25,110)),flag=wx.LEFT|wx.TOP, border=5)
        boxsizer.Add(wx.RadioButton(panel,label="Weekly",pos=(25,130)),flag=wx.LEFT|wx.TOP, border=5)
        boxsizer.Add(wx.RadioButton(panel,label="Monthly",pos=(25,150)),flag=wx.LEFT|wx.TOP, border=5)
        sizer.Add(boxsizer,pos=(5,10) ,span=(1, 5), 
                 flag=wx.EXPAND|wx.TOP|wx.LEFT|wx.RIGHT , border=10)
        wx.StaticLine(panel, pos=(100,90), size=(1,100))
        start=wx.StaticText(panel, -1, 'Start Date:', pos=(120,90))
        Time=wx.StaticText(panel, -1, 'Start Time:', pos=(350, 90))
        start.SetFont(font)
        Time.SetFont(font)
        Box2=wx.StaticBox(panel,label='Advance Settings',size=(565,200),pos=(15,280))
        boxsizer = wx.StaticBoxSizer(Box2, wx.VERTICAL)
        boxsizer.Add(wx.CheckBox(panel, -1,'Repeat task every', pos=(20,300),size=(200,25)))

我想在'开始时间'中显示时间:'textctrl。我尝试使用TimePickerCtrl,但无法制作它。我使用'DateCtrl'和Calenderdialog在'开始日期:'textctrl中显示日历。期待以示例提出好的建议。谢谢