Mar-01-2018, 02:23 AM
The run.py program will still be useful if you need to run a demo by itself, without the full phoenix
overhead. But you shouldn't have to carry that around with your application.
Here's a modified version of your code, which allows that:
overhead. But you shouldn't have to carry that around with your application.
Here's a modified version of your code, which allows that:
#!/usr/bin/env python3 import sys import wx import os books = ['67', 'Genesis050', 'Exodus040', 'Leviticus027', 'Numbers036', 'Deuteronomy034', 'Joshua024', 'Judges021', 'Ruth004', '1 Samuel031', '2 Samuel024', '1 Kings022', '2 Kings025', '1 Chronicles029', '2 Chronicles036', 'Ezra010', 'Nehemiah013', 'Esther010', 'Job042', 'Psalms075', 'Psalms150', 'Proverbs031', 'Ecclesiastes012', 'Song of Solomon008', 'Isaiah066', 'Jeremiah052', 'Lamentations005', 'Ezekiel048', 'Daniel012', 'Hosea014', 'Joel003', 'Amos009', 'Obadiah001', 'Jonah004', 'Micah007', 'Nahum003', 'Habakkuk003', 'Zephaniah003', 'Haggai002', 'Zechariah014', 'Malachi004', 'Matthew028', 'Mark016', 'Luke024', 'John021', 'Acts028', 'Romans016', '1 Corinthians016', '2 Corinthians013', 'Galatians006', 'Ephesians006', 'Philippians004', 'Colossians004', '1 Thessalonians005', '2 Thessalonians003', '1 Timothy006', '2 Timothy004', 'Titus003', 'Philemon001', 'Hebrews013', 'James005', '1 Peter005', '2 Peter003', '1 John005', '2 John001', '3 John001', 'Jude001', 'Revelation022'] class Log: def WriteText(self, text): if text[-1:] == '\n': text = text[:-1] wx.LogMessage(text) write = WriteText class BibleNB(wx.Frame): def __init__(self, parent, id=wx.ID_ANY, title="Bible For The Blind", xpos=20, ypos=20, width=600, height=338, style=wx.DEFAULT_FRAME_STYLE, name='BibleApp'): # ideal width x height ratio: 16:9 app = wx.App() wx.Frame.__init__(self, parent, id=id, title=title, pos=(xpos, ypos), size=(width, height), style=style) app.SetTopWindow(self) self.create_notebook() app.MainLoop() def create_notebook(self): wx.Log.SetActiveTarget(wx.LogStderr()) log = Log() # for size use 16:9 ratio for best appearence yfactor = 16/9 width = 1000 height = int(width / yfactor) self.frame = wx.Frame(self, id=wx.ID_ANY, title='Bible For The Blind', pos=(20, 20), size=(width, height), style=wx.DEFAULT_FRAME_STYLE, name=wx.FrameNameStr) self.nb = wx.Notebook(self.frame, id=wx.ID_ANY, style=wx.BK_DEFAULT) self.log = log self.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED, self.OnPageChanged) self.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGING, self.OnPageChanging) for pagenum in range(1, 68): column = 0 row = 0 pge = books[pagenum] thispage = pge[:-3] win = wx.Panel(self.nb, -1, style=wx.CLIP_CHILDREN) # win = self.makeColorPanel(wx.WHITE) win.SetSize(self.GetBestSize()) # st.SetForegroundColour(wx.BLACK) # self.nb.AddPage(win, thispage) self.nb.AddPage(win, thispage) numchps = books[pagenum] chaps = int(numchps[-3:]) if (pge == 'Psalms150'): for nums in range(76, 151): btn = 'butt' + str(nums) btn = wx.Button(win, -1, str(nums), pos=(column, row), size=(110, 36)) btn.Bind(wx.EVT_ENTER_WINDOW, self.OnEnterWindow, btn) btn.Bind(wx.EVT_LEAVE_WINDOW, self.OnExitWindow, btn) btn.Bind(wx.EVT_BUTTON, self.OnClick, btn) column += 150 if column == 1200: column = 0 row += 55 else: column = 0 row = 0 for nums in range(1, chaps + 1): btn = 'butt' + str(nums) btn = wx.Button(win, -1, str(nums), pos=(column, row), size=(110, 36)) btn.Bind(wx.EVT_ENTER_WINDOW, self.OnEnterWindow, btn) btn.Bind(wx.EVT_LEAVE_WINDOW, self.OnExitWindow, btn) btn.Bind(wx.EVT_BUTTON, self.OnClick, btn) column += 150 if column == 1200: column = 0 row += 55 self.frame.Show() def OnPageChanged(self, event): if self: old = event.GetOldSelection() new = event.GetSelection() sel = self.GetSelection() self.log.write('OnPageChanged, old:%d, new:%d, sel:%d\n' % (old, new, sel)) event.Skip() def OnPageChanging(self, event): if self: old = event.GetOldSelection() new = event.GetSelection() sel = self.GetSelection() self.log.write('OnPageChanging, old:%d, new:%d, sel:%d\n' % (old, new, sel)) event.Skip() def OnClick(self, event): obj = event.GetEventObject() print("You clicked %s" % obj.GetLabel()) event.Skip() def OnEnterWindow(self, event): obj = event.GetEventObject() print("You hovered over %s" % obj.GetLabel()) cmd = "mpv /home/norman/Blind/genesis.mp3" # School/Lessons/2tone.mp3 &" os.system(cmd) event.Skip() def OnExitWindow(self, event): obj = event.GetEventObject() print("You hovered over %s" % obj.GetLabel()) cmd = "killall -9 mpv" os.system(cmd) if __name__ == '__main__': BibleNB(None)