#!/usr/bin/env python #coding: utf-8 import os import platform import sys from PyQt4.QtCore import * from PyQt4.QtGui import * class ReadingTab(QWidget): def __init__(self, parent=None): super(ReadingTab, self).__init__(parent) self.readingTable = QTableWidget() self.addReadingButton = QPushButton("Add pages to read") self.editReadingButton = QPushButton("Edit pages") self.readingDoneButton = QPushButton("Done") vlayout = QVBoxLayout() hlayout = QHBoxLayout() hlayout.addWidget(self.addReadingButton) hlayout.addWidget(self.editReadingButton) hlayout.addWidget(self.readingDoneButton) vlayout.addWidget(self.readingTable) vlayout.addLayout(hlayout) self.setLayout(vlayout) class ReadingDlg(QDialog): def __init__(self, parent=None): super(ReadingDlg, self).__init__(parent) weekLabel = QLabel(self.trUtf8("&Week")) courseLabel = QLabel(self.trUtf8("&Course")) bookLabel = QLabel(self.trUtf8("&Book")) chapterLabel = QLabel(self.trUtf8("Cha&pter")) pagesLabel = QLabel(self.trUtf8("&Pages")) numberOfPagesLabel = QLabel(self.trUtf8("&Number of pages")) weekEdit = QSpinBox() weekEdit.setRange(1, 52) courseEdit = QComboBox() bookEdit = QComboBox() chapterEdit = QLineEdit() pagesEdit = QLineEdit() numberOfPagesEdit = QLabel() weekLabel.setBuddy(weekEdit) courseLabel.setBuddy(courseEdit) bookLabel.setBuddy(bookEdit) chapterLabel.setBuddy(chapterEdit) pagesLabel.setBuddy(pagesEdit) numberOfPagesLabel.setBuddy(numberOfPagesEdit) self.layout = QGridLayout() self.layout.addWidget(weekLabel, 0, 0) self.layout.addWidget(courseLabel, 1, 0) self.layout.addWidget(bookLabel, 2, 0) self.layout.addWidget(chapterLabel, 3, 0) self.layout.addWidget(pagesLabel, 4, 0) self.layout.addWidget(numberOfPagesLabel, 5, 0) self.layout.addWidget(weekEdit, 0, 1) self.layout.addWidget(courseEdit, 1, 1) self.layout.addWidget(bookEdit, 2, 1) self.layout.addWidget(chapterEdit, 3, 1) self.layout.addWidget(pagesEdit, 4, 1) self.layout.addWidget(numberOfPagesEdit, 5, 1) self.setLayout(self.layout) class AddReadingDlg(ReadingDlg): def __init__(self, parent=None): super(AddReadingDlg, self).__init__(parent) buttonBox = QDialogButtonBox(QDialogButtonBox.Ok|QDialogButtonBox.Cancel) self.layout.addWidget(buttonBox, 6, 0, 1, 2) self.connect(buttonBox, SIGNAL("accepted()"), self, SLOT("accept()")) self.connect(buttonBox, SIGNAL("rejected()"), self, SLOT("reject()")) self.setWindowTitle(self.trUtf8("Add new reading")) class EditReadingDlg(ReadingDlg): def __init__(self, parent=None): super(EditReadingDlg, self).__init__(parent) self.setAttribute(Qt.WA_DeleteOnClose) buttonBox = QDialogButtonBox(QDialogButtonBox.Apply|QDialogButtonBox.Close) self.layout.addWidget(buttonBox, 6, 0, 1, 2) self.connect(buttonBox.button(QDialogButtonBox.Apply), SIGNAL("clicked()"), self.apply) self.connect(buttonBox, SIGNAL("rejected()"), self, SLOT("reject()")) self.setWindowTitle(self.trUtf8("Edit reading")) def apply(self): pass class ReadingModel(): week = "" course = "" book = "" chapter = "" pages = "" def setWeek(self, week): self.week = week def getWeek(self): return self.week def setCourse(self, course): self.course = course def getCourse(self): return self.course def setBook(self, book): self.book = book def getBook(self): return self.book def setChapter(self, chapter): self.chapter = chapter def getChapter(self): return self.chapter def setPages(self, pages): self.pages = pages def getPages(self): return self.pages def getNumberOfPages(self): pages = self.getPages() pagesArray = pages.split(", ") nextArray = [] sum = 0 for p in pagesArray: nextArray.append(p.split("-")) for n in nextArray: sum += int(n[1]) - int(n[0]) return sum