now displays two page spreads across width of window, but can be kind of short. Also worked on the focus issues a bit after the dialog box

This commit is contained in:
dan
2021-05-07 15:50:17 -04:00
parent 66e7fc9509
commit b163d1a9bf

22
main.py
View File

@@ -2,7 +2,7 @@ from tkinter import *
from tkinter import filedialog from tkinter import filedialog
from zipfile import ZipFile as zf from zipfile import ZipFile as zf
from PIL import Image, ImageTk from PIL import Image, ImageTk
import io,os, pickle import io, os, pickle
class MangaReader: class MangaReader:
def __init__(self, master): def __init__(self, master):
@@ -19,7 +19,6 @@ class MangaReader:
master.title("Manga Reader") master.title("Manga Reader")
#Load settings #Load settings
settingLoad = pickle.load(open('manga.p', 'rb')) settingLoad = pickle.load(open('manga.p', 'rb'))
self.dir = settingLoad['directory'] self.dir = settingLoad['directory']
@@ -71,15 +70,20 @@ class MangaReader:
self.master.bind(self.quitKey, self.shutdown) self.master.bind(self.quitKey, self.shutdown)
self.master.bind(self.openKey, self.open_menu) self.master.bind(self.openKey, self.open_menu)
#watch the 'x' button for window close
master.protocol('WM_DELETE_WINDOW', self.shutdown) master.protocol('WM_DELETE_WINDOW', self.shutdown)
def open_menu(self):
def open_menu(self, *event):
# file dialog. reset page counts, call display Maanga passing in starting values # file dialog. reset page counts, call display Maanga passing in starting values
if self.dir == 'None': if self.dir == 'None':
mangaFile = filedialog.askopenfilename(initialdir = "/home/dan/Desktop/") mangaFile = filedialog.askopenfilename(initialdir = "/home/dan/Desktop/")
else: else:
mangaFile = filedialog.askopenfilename(initialdir = self.dir) mangaFile = filedialog.askopenfilename(initialdir = self.dir)
self.file = mangaFile if mangaFile != '':
self.file = mangaFile
else :
self.panel.focus_force()
if self.file != '': if self.file != '':
self.page = 0 self.page = 0
self.total = 0 self.total = 0
@@ -110,6 +114,13 @@ class MangaReader:
hpercent = (hsize / float(im.size[1])) hpercent = (hsize / float(im.size[1]))
widthsize = int((float(im.size[0] * float(hpercent)))) widthsize = int((float(im.size[0] * float(hpercent))))
if widthsize > self.master.winfo_width():
widthsize = self.master.winfo_width()
#widthsize = im.size[0]
wpercent = (widthsize / float(im.size[0]))
hsize = int((float(im.size[1]) * float(wpercent)))
# self.master.config(width=widthsize)
im = im.resize((widthsize, hsize), Image.ANTIALIAS) im = im.resize((widthsize, hsize), Image.ANTIALIAS)
#convert to tkImage and update the on screen image. #convert to tkImage and update the on screen image.
self.img = ImageTk.PhotoImage(im) self.img = ImageTk.PhotoImage(im)
@@ -117,8 +128,7 @@ class MangaReader:
#finally update the current page count #finally update the current page count
self.pgcount.configure(text=str(pg+1) + " of " + str(self.total)) self.pgcount.configure(text=str(pg+1) + " of " + str(self.total))
self.panel.focus_set() self.panel.focus_force()
self.master.config(width=wsize)
def nextPage(self, event): def nextPage(self, event):
self.page = self.page + 1 self.page = self.page + 1