示例#1
0
class MainFrame(wx.Frame):

    def __init__(self):
        wx.Frame.__init__(self, None, title="Otter Share")
        panel = wx.Panel(self)

        nb = wx.Notebook(panel)
        tab1 = Tab(nb)
        tab2 = Tab(nb)
        tab3 = Tab(nb)
        tab4 = Tab(nb)
        nb.AddPage(tab1, "Tab1")
        nb.AddPage(tab2, "Tab2")
        nb.AddPage(tab3, "Tab3")
        nb.AddPage(tab4, "Tab4")
        # Set noteboook in a sizer to create the layout
        sizer = wx.BoxSizer()
        sizer.Add(nb, 1, wx.EXPAND)
        panel.SetSizer(sizer)

        self.tbIcon = TaskBarIcon(self)

        self.Bind(wx.EVT_ICONIZE, self.OnMinimize)
        self.Bind(wx.EVT_CLOSE, self.OnClose)

        self.Show()

        # Add some events to the keyboard
        #WinKeyboard.add_handler(print_event)
        #WinKeyboard.add_handler(screenshot_handler)

        #InputManager.add_hook(self.mouse.generate_hook())

        # Start listening on input
        worker = None
        InputManager.add_input(WinMouse())
        InputManager.add_input(WinKeyboard())

        # Split the Message Pumping onto its own thread.
        if not worker:
            worker = threading.Thread(target=InputManager.listener())
            worker.start()

    def OnClose(self, event):
        # Sends a stop pumping message
        InputManager.stop_pumping(threading.get_ident())
        self.tbIcon.RemoveIcon()
        self.tbIcon.Destroy()
        self.Destroy()

    def OnMinimize(self, event):
        if self.IsIconized():
            self.Hide()
示例#2
0
class AppFrame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, -1, "", size=(1, 1), style=wx.FRAME_NO_TASKBAR | wx.NO_FULL_REPAINT_ON_RESIZE)
        self.setup()
        self.create_taskbar_icon()
        self.twitter = Twitter(self)

    def setup(self):
        if not os.path.exists(Constants.FOLDER_PATH):
            os.mkdir(Constants.FOLDER_PATH)

    def create_taskbar_icon(self):
        self.tbIcon = TaskBarIcon(self)
        self.tbIcon.Bind(wx.EVT_MENU, self.exit, id=wx.ID_EXIT)

    def open_keylist(self, event):
        keyListDlg = KeyListDialog(self)
        if keyListDlg.ShowModal() == wx.ID_OK:
            keyListDlg.Destroy()

    def open_twitter(self, event):
        webbrowser.open("https://twitter.com/DuvalMagic")
        webbrowser.open("https://twitter.com/GearboxSoftware")

    def start_taskbar_blinking(self):
        self.tbIcon.start_blinking()

    def get_browser_pin(self, url):
        dlg = wx.MessageDialog(
            self, "A browser needs to be open to get a twitter authorization pin", "Authorization pin", wx.YES_NO
        )
        retCode = dlg.ShowModal()
        if retCode == wx.ID_YES:
            dlg.Destroy()
            webbrowser.open(url)
            pin = self.open_pin_dialog()
            return pin
        elif retCode == wx.ID_NO:
            self.close_dialog()

    def open_pin_dialog(self):
        pinDlg = wx.TextEntryDialog(self, "Twitter Pin:", "Pin Preferences", style=wx.OK | wx.CANCEL)
        retID = pinDlg.ShowModal()
        if retID == wx.ID_OK:
            pin = pinDlg.GetValue()
            if len(pin) > 0:
                pinDlg.Destroy()
                return pin
            else:
                pinDlg.Show()
        elif retID == wx.ID_CANCEL:
            self.close_dialog()

    def close_dialog(self):
        dlg = wx.MessageDialog(
            self,
            "This application needs to be authenticated with twitter to work correctly, closing application.",
            "Closing",
            wx.OK,
        )
        retCode = dlg.ShowModal()
        if retCode == wx.OK:
            dlg.Destroy()
            self.exit(wx.EVT_MENU)

    def exit(self, event):
        self.tbIcon.RemoveIcon()
        self.tbIcon.Destroy()
        os._exit(0)
示例#3
0
 def create_taskbar_icon(self):
     self.tbIcon = TaskBarIcon(self)
     self.tbIcon.Bind(wx.EVT_MENU, self.exit, id=wx.ID_EXIT)
示例#4
0
    def __init__(
            self, parent=None, id=wx.ID_ANY, title='TaskBarIcon', pos=wx.DefaultPosition,
            size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE):
        wx.Frame.__init__(self, parent, id, title, pos, size, style)

        # add by wxFormBuilder ↓↓↓↓↓↓↓↓↓  no modify by code
        self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize)

        bSizer1 = wx.BoxSizer(wx.VERTICAL)

        sbSizer1 = wx.StaticBoxSizer(wx.StaticBox(self, wx.ID_ANY, u"每天工作时间"), wx.VERTICAL)

        gSizer2 = wx.GridSizer(0, 4, 0, 0)

        self.m_staticText2 = wx.StaticText(sbSizer1.GetStaticBox(), wx.ID_ANY, u"早上:", wx.DefaultPosition,
                                           wx.DefaultSize, 0)
        self.m_staticText2.Wrap(-1)
        gSizer2.Add(self.m_staticText2, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 5)

        self.am_start = wx.TextCtrl(sbSizer1.GetStaticBox(), wx.ID_ANY, u"08:30", wx.DefaultPosition, wx.DefaultSize,
                                    wx.TE_CENTRE)
        gSizer2.Add(self.am_start, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 5)

        self.m_staticText3 = wx.StaticText(sbSizer1.GetStaticBox(), wx.ID_ANY, u"-", wx.DefaultPosition, wx.DefaultSize,
                                           0)
        self.m_staticText3.Wrap(-1)
        gSizer2.Add(self.m_staticText3, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 5)

        self.am_end = wx.TextCtrl(sbSizer1.GetStaticBox(), wx.ID_ANY, u"12:00", wx.DefaultPosition, wx.DefaultSize,
                                  wx.TE_CENTRE)
        gSizer2.Add(self.am_end, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 5)

        self.m_staticText4 = wx.StaticText(sbSizer1.GetStaticBox(), wx.ID_ANY, u"下午:", wx.DefaultPosition,
                                           wx.DefaultSize, 0)
        self.m_staticText4.Wrap(-1)
        gSizer2.Add(self.m_staticText4, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 5)

        self.pm_start = wx.TextCtrl(sbSizer1.GetStaticBox(), wx.ID_ANY, u"13:30", wx.DefaultPosition, wx.DefaultSize,
                                    wx.TE_CENTRE)
        gSizer2.Add(self.pm_start, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 5)

        self.m_staticText5 = wx.StaticText(sbSizer1.GetStaticBox(), wx.ID_ANY, u"-", wx.DefaultPosition, wx.DefaultSize,
                                           0)
        self.m_staticText5.Wrap(-1)
        gSizer2.Add(self.m_staticText5, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 5)

        self.pm_end = wx.TextCtrl(sbSizer1.GetStaticBox(), wx.ID_ANY, u"18:00", wx.DefaultPosition, wx.DefaultSize,
                                  wx.TE_CENTRE)
        gSizer2.Add(self.pm_end, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 5)

        sbSizer1.Add(gSizer2, 1, wx.EXPAND, 5)

        bSizer1.Add(sbSizer1, 1, wx.EXPAND, 5)

        gSizer3 = wx.GridSizer(0, 3, 0, 0)

        self.m_staticText6 = wx.StaticText(self, wx.ID_ANY, u"每多长时间提醒(分钟)", wx.DefaultPosition, wx.DefaultSize, 0)
        self.m_staticText6.Wrap(-1)
        gSizer3.Add(self.m_staticText6, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 5)

        self.period = wx.TextCtrl(self, wx.ID_ANY, u"60", wx.DefaultPosition, wx.DefaultSize, wx.TE_RIGHT)
        gSizer3.Add(self.period, 0, wx.ALL | wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL, 5)

        self.m_staticText7 = wx.StaticText(self, wx.ID_ANY, u"min", wx.DefaultPosition, wx.DefaultSize, 0)
        self.m_staticText7.Wrap(-1)
        gSizer3.Add(self.m_staticText7, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)

        bSizer1.Add(gSizer3, 1, wx.EXPAND, 5)

        remind_time = wx.StaticBoxSizer(wx.StaticBox(self, wx.ID_ANY, u"提醒时间"), wx.VERTICAL)

        fgSizer4 = wx.FlexGridSizer(0, 2, 0, 0)
        fgSizer4.AddGrowableCol(1)
        fgSizer4.AddGrowableRow(1)
        fgSizer4.SetFlexibleDirection(wx.BOTH)
        fgSizer4.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)

        self.m_staticText16 = wx.StaticText(remind_time.GetStaticBox(), wx.ID_ANY, u"早上:", wx.DefaultPosition,
                                            wx.DefaultSize, 0)
        self.m_staticText16.Wrap(-1)
        fgSizer4.Add(self.m_staticText16, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 5)

        self.am_lists = wx.StaticText(remind_time.GetStaticBox(), wx.ID_ANY, wx.EmptyString, wx.DefaultPosition,
                                      wx.DefaultSize, 0)
        self.am_lists.Wrap(-1)
        fgSizer4.Add(self.am_lists, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)

        self.m_staticText18 = wx.StaticText(remind_time.GetStaticBox(), wx.ID_ANY, u"下午:", wx.DefaultPosition,
                                            wx.DefaultSize, 0)
        self.m_staticText18.Wrap(-1)
        fgSizer4.Add(self.m_staticText18, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_CENTER_HORIZONTAL, 5)

        self.pm_lists = wx.StaticText(remind_time.GetStaticBox(), wx.ID_ANY, wx.EmptyString, wx.DefaultPosition,
                                      wx.DefaultSize, 0)
        self.pm_lists.Wrap(-1)
        fgSizer4.Add(self.pm_lists, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)

        remind_time.Add(fgSizer4, 1, wx.EXPAND, 5)

        bSizer1.Add(remind_time, 1, wx.ALIGN_CENTER_HORIZONTAL | wx.EXPAND, 5)

        gSizer4 = wx.GridSizer(0, 2, 0, 0)

        self.reset = wx.Button(self, wx.ID_ANY, u"重置", wx.DefaultPosition, wx.DefaultSize, 0)
        gSizer4.Add(self.reset, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)

        self.start_toggle = wx.Button(self, wx.ID_ANY, u"开始", wx.DefaultPosition, wx.DefaultSize, 0)
        gSizer4.Add(self.start_toggle, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT, 5)

        bSizer1.Add(gSizer4, 0, wx.ALIGN_RIGHT, 5)

        self.SetSizer(bSizer1)
        self.Layout()

        self.Centre(wx.BOTH)

        # Connect Events
        self.reset.Bind(wx.EVT_BUTTON, self.OnReset)
        self.start_toggle.Bind(wx.EVT_BUTTON, self.OnStartToggle)
        # 记得最后处理这里
        self.reset.Hide()
        # add by wxFormBuilder ↑↑↑↑↑↑↑↑↑  no modify by code

        self.dialog = MyDialog()
        self.SetIcon(wx.Icon('.importance\loadIcon.ico', wx.BITMAP_TYPE_ICO))  # 设置图标

        self.Bind(wx.EVT_CLOSE, self.OnClose)  # 关闭按钮
        self.Bind(wx.EVT_ICONIZE, self.OnIconize)

        self.taskBarIcon = TaskBarIcon(self)  # 设置程序为托盘形式

        wx.Frame.SetMaxSize(self, size)  # 最大尺寸
        wx.Frame.SetMinSize(self, size)  # 最小尺寸