コード例 #1
0
class Demo(QWidget):
    def __init__(self):
        super(Demo, self).__init__()
        self.calendar = QCalendarWidget(self)
        self.calendar.setMinimumDate(QDate(1946, 2, 14))  # 2
        self.calendar.setMaximumDate(QDate(6666, 6, 6))  # 3
        # self.calendar.setDateRange(QDate(1946, 2, 14), QDate(6666, 6, 6))
        self.calendar.setFirstDayOfWeek(Qt.Monday)  # 4
        # self.calendar.setSelectedDate(QDate(1946, 2, 14))                   # 5
        self.calendar.setGridVisible(True)  # 6
        self.calendar.clicked.connect(self.show_emotion_func)  # 6

        print(self.calendar.minimumDate())  # 7
        print(self.calendar.maximumDate())
        print(self.calendar.selectedDate())
        # print(self.calendar.selectedDate().toString())

        self.label = QLabel(self)  # 8
        self.label.setAlignment(Qt.AlignCenter)

        weekday = self.calendar.selectedDate().toString('ddd')  # 9
        print("weekday:{0} {1}".format(weekday, EMOTION.get(weekday, "Jiang")))
        self.label.setText(EMOTION.get(weekday, 'jiang '))

        self.v_layout = QVBoxLayout()
        self.v_layout.addWidget(self.calendar)
        self.v_layout.addWidget(self.label)

        self.setLayout(self.v_layout)
        self.setWindowTitle('QCalendarWidget')

    def show_emotion_func(self):  # 10
        weekday = self.calendar.selectedDate().toString('ddd')
        self.label.setText(EMOTION[weekday])
コード例 #2
0
ファイル: CalendarDisplay.py プロジェクト: dedickinson/pi-hub
    def get_calendar_widget(self):
        calendar = QCalendarWidget()
        calendar.setEnabled(True)
        calendar.setFirstDayOfWeek(Qt.Monday)
        calendar.setDateEditEnabled(True)

        return calendar
コード例 #3
0
ファイル: components.py プロジェクト: todstoychev/events-dock
 def __init__(self, *__args):
     super().__init__(*__args)
     self.setCalendarPopup(True)
     calendar = QCalendarWidget()
     calendar.setGridVisible(True)
     calendar.setFirstDayOfWeek(Qt.Monday)
     self.setCalendarWidget(calendar)
     self.setDisplayFormat('d MMM yyyy - hh:mm:ss')
コード例 #4
0
class Demo(QWidget):
    def __init__(self):
        super(Demo, self).__init__()
        self.calendar = QCalendarWidget(self)
        # 通过setMinimumDate()和
        # setMaximumDate()可以设置日历的最小和最大日期
        # (可用setDateRange()替代),传入的参数为QDate。
        self.calendar.setMinimumDate(QDate(1946, 2, 14))  # 2
        self.calendar.setMaximumDate(QDate(6666, 6, 6))  # 3
        # self.calendar.setDateRange(QDate(1946, 2, 14), QDate(6666, 6, 6))
        # self.calendar.setFirstDayOfWeek(Qt.Monday)                            # 4
        # self.calendar.setSelectedDate(QDate(1946, 2, 14))
        # 5
        # setGridVisible(bool)方法可以设置是否在日历上显示网格;
        self.calendar.setGridVisible(True)  # 6
        # 当点击到日历上的某个日期时,clicked信号就会被触发
        self.calendar.clicked.connect(self.show_emotion_func)  # 6

        self.calendar.setFirstDayOfWeek(Qt.Sunday)

        print(self.calendar.minimumDate())  # 7
        print(self.calendar.maximumDate())
        print(self.calendar.selectedDate())

        self.label = QLabel(self)  # 8
        self.label.setAlignment(Qt.AlignCenter)

        # setSelectedDate()方法可以设置日历初始化时所显示的日期
        # ,如果不设置,则默认是当天日期;
        weekday = self.calendar.selectedDate().toString('ddd')  # 9
        self.label.setText(EMOTION[weekday])

        self.v_layout = QVBoxLayout()
        self.v_layout.addWidget(self.calendar)
        self.v_layout.addWidget(self.label)

        self.setLayout(self.v_layout)
        self.setWindowTitle('QCalendarWidget')

    def show_emotion_func(self):  # 10
        weekday = self.calendar.selectedDate().toString('ddd')
        self.label.setText(EMOTION[weekday])
コード例 #5
0
    def initUI(self):

        cal = QCalendarWidget(self)
        cal.setGridVisible(True)
        cal.move(20, 20)
        cal.setFirstDayOfWeek(QtCore.Qt.Monday)
        cal.clicked[QtCore.QDate].connect(self.showDate)

        self.lbl = QLabel(self)
        self.label = QLabel(self)
        date = cal.selectedDate()
        self.lbl.setText(date.toString())
        #вывод текущей даты
        self.lbl.move(450, 100)
        self.label.setText('Заходи у місті Вінниця')
        self.setFont(QFont('Comic Sans MS', 10))

        # вывод окна
        self.setGeometry(300, 300, 580, 400)
        self.setWindowTitle('Calendar')
        self.show()
コード例 #6
0
ファイル: Calendar.py プロジェクト: postman721/PostX-Calendar
class Ui_PostX_Calendar(object):
    def setupUi(self, PostX_Calendar):
        PostX_Calendar.setObjectName(_fromUtf8("PostX_Calendar"))
        PostX_Calendar.resize(500, 300)
        palette = QPalette()
        brush = QBrush(QColor(245, 245, 225))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Active, QPalette.WindowText, brush)
        brush = QBrush(QColor(59, 58, 55))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Active, QPalette.Button, brush)
        brush = QBrush(QColor(88, 87, 82))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Active, QPalette.Light, brush)
        brush = QBrush(QColor(73, 72, 68))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Active, QPalette.Midlight, brush)
        brush = QBrush(QColor(29, 29, 27))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Active, QPalette.Dark, brush)
        brush = QBrush(QColor(39, 38, 36))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Active, QPalette.Mid, brush)
        brush = QBrush(QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Active, QPalette.Text, brush)
        brush = QBrush(QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Active, QPalette.BrightText, brush)
        brush = QBrush(QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Active, QPalette.ButtonText, brush)
        brush = QBrush(QColor(0, 0, 0))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Active, QPalette.Base, brush)
        brush = QBrush(QColor(59, 58, 55))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Active, QPalette.Window, brush)
        brush = QBrush(QColor(0, 0, 74))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Active, QPalette.Shadow, brush)
        brush = QBrush(QColor(29, 29, 27))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Active, QPalette.AlternateBase, brush)
        brush = QBrush(QColor(255, 255, 220))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Active, QPalette.ToolTipBase, brush)
        brush = QBrush(QColor(0, 0, 0))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Active, QPalette.ToolTipText, brush)
        brush = QBrush(QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Inactive, QPalette.WindowText, brush)
        brush = QBrush(QColor(59, 58, 55))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Inactive, QPalette.Button, brush)
        brush = QBrush(QColor(88, 87, 82))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Inactive, QPalette.Light, brush)
        brush = QBrush(QColor(73, 72, 68))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Inactive, QPalette.Midlight, brush)
        brush = QBrush(QColor(29, 29, 27))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Inactive, QPalette.Dark, brush)
        brush = QBrush(QColor(39, 38, 36))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Inactive, QPalette.Mid, brush)
        brush = QBrush(QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Inactive, QPalette.Text, brush)
        brush = QBrush(QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Inactive, QPalette.BrightText, brush)
        brush = QBrush(QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Inactive, QPalette.ButtonText, brush)
        brush = QBrush(QColor(0, 0, 0))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Inactive, QPalette.Base, brush)
        brush = QBrush(QColor(59, 58, 55))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Inactive, QPalette.Window, brush)
        brush = QBrush(QColor(0, 0, 0))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Inactive, QPalette.Shadow, brush)
        brush = QBrush(QColor(29, 29, 27))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Inactive, QPalette.AlternateBase, brush)
        brush = QBrush(QColor(255, 255, 220))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Inactive, QPalette.ToolTipBase, brush)
        brush = QBrush(QColor(0, 0, 0))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Inactive, QPalette.ToolTipText, brush)
        brush = QBrush(QColor(29, 29, 27))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Disabled, QPalette.WindowText, brush)
        brush = QBrush(QColor(59, 58, 55))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Disabled, QPalette.Button, brush)
        brush = QBrush(QColor(88, 87, 82))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Disabled, QPalette.Light, brush)
        brush = QBrush(QColor(73, 72, 68))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Disabled, QPalette.Midlight, brush)
        brush = QBrush(QColor(29, 29, 27))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Disabled, QPalette.Dark, brush)
        brush = QBrush(QColor(39, 38, 36))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Disabled, QPalette.Mid, brush)
        brush = QBrush(QColor(29, 29, 27))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Disabled, QPalette.Text, brush)
        brush = QBrush(QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Disabled, QPalette.BrightText, brush)
        brush = QBrush(QColor(29, 29, 27))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Disabled, QPalette.ButtonText, brush)
        brush = QBrush(QColor(59, 58, 55))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Disabled, QPalette.Base, brush)
        brush = QBrush(QColor(59, 58, 55))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Disabled, QPalette.Window, brush)
        brush = QBrush(QColor(0, 0, 0))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Disabled, QPalette.Shadow, brush)
        brush = QBrush(QColor(59, 58, 55))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Disabled, QPalette.AlternateBase, brush)
        brush = QBrush(QColor(255, 255, 220))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Disabled, QPalette.ToolTipBase, brush)
        brush = QBrush(QColor(0, 0, 0))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Disabled, QPalette.ToolTipText, brush)
        PostX_Calendar.setPalette(palette)
        PostX_Calendar.setWindowOpacity(1.0)
        self.horizontalLayout = QHBoxLayout(PostX_Calendar)
        self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
        self.calendarWidget = QCalendarWidget(PostX_Calendar)
        palette = QPalette()
        brush = QBrush(QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Active, QPalette.WindowText, brush)
        brush = QBrush(QColor(97, 97, 97))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Active, QPalette.Button, brush)
        brush = QBrush(QColor(146, 146, 146))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Active, QPalette.Light, brush)
        brush = QBrush(QColor(121, 121, 121))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Active, QPalette.Midlight, brush)
        brush = QBrush(QColor(48, 48, 48))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Active, QPalette.Dark, brush)
        brush = QBrush(QColor(64, 64, 64))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Active, QPalette.Mid, brush)
        brush = QBrush(QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Active, QPalette.Text, brush)
        brush = QBrush(QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Active, QPalette.BrightText, brush)
        brush = QBrush(QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Active, QPalette.ButtonText, brush)
        brush = QBrush(QColor(0, 0, 0))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Active, QPalette.Base, brush)
        brush = QBrush(QColor(97, 97, 97))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Active, QPalette.Window, brush)
        brush = QBrush(QColor(0, 0, 0))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Active, QPalette.Shadow, brush)
        brush = QBrush(QColor(48, 48, 48))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Active, QPalette.AlternateBase, brush)
        brush = QBrush(QColor(255, 255, 220))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Active, QPalette.ToolTipBase, brush)
        brush = QBrush(QColor(0, 0, 0))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Active, QPalette.ToolTipText, brush)
        brush = QBrush(QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Inactive, QPalette.WindowText, brush)
        brush = QBrush(QColor(97, 97, 97))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Inactive, QPalette.Button, brush)
        brush = QBrush(QColor(146, 146, 146))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Inactive, QPalette.Light, brush)
        brush = QBrush(QColor(121, 121, 121))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Inactive, QPalette.Midlight, brush)
        brush = QBrush(QColor(48, 48, 48))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Inactive, QPalette.Dark, brush)
        brush = QBrush(QColor(64, 64, 64))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Inactive, QPalette.Mid, brush)
        brush = QBrush(QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Inactive, QPalette.Text, brush)
        brush = QBrush(QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Inactive, QPalette.BrightText, brush)
        brush = QBrush(QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Inactive, QPalette.ButtonText, brush)
        brush = QBrush(QColor(0, 0, 0))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Inactive, QPalette.Base, brush)
        brush = QBrush(QColor(97, 97, 97))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Inactive, QPalette.Window, brush)
        brush = QBrush(QColor(0, 0, 0))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Inactive, QPalette.Shadow, brush)
        brush = QBrush(QColor(48, 48, 48))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Inactive, QPalette.AlternateBase, brush)
        brush = QBrush(QColor(255, 255, 220))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Inactive, QPalette.ToolTipBase, brush)
        brush = QBrush(QColor(0, 0, 0))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Inactive, QPalette.ToolTipText, brush)
        brush = QBrush(QColor(48, 48, 48))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Disabled, QPalette.WindowText, brush)
        brush = QBrush(QColor(97, 97, 97))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Disabled, QPalette.Button, brush)
        brush = QBrush(QColor(146, 146, 146))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Disabled, QPalette.Light, brush)
        brush = QBrush(QColor(121, 121, 121))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Disabled, QPalette.Midlight, brush)
        brush = QBrush(QColor(48, 48, 48))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Disabled, QPalette.Dark, brush)
        brush = QBrush(QColor(64, 64, 64))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Disabled, QPalette.Mid, brush)
        brush = QBrush(QColor(48, 48, 48))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Disabled, QPalette.Text, brush)
        brush = QBrush(QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Disabled, QPalette.BrightText, brush)
        brush = QBrush(QColor(48, 48, 48))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Disabled, QPalette.ButtonText, brush)
        brush = QBrush(QColor(97, 97, 97))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Disabled, QPalette.Base, brush)
        brush = QBrush(QColor(97, 97, 97))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Disabled, QPalette.Window, brush)
        brush = QBrush(QColor(0, 0, 0))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Disabled, QPalette.Shadow, brush)
        brush = QBrush(QColor(97, 97, 97))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Disabled, QPalette.AlternateBase, brush)
        brush = QBrush(QColor(255, 255, 220))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Disabled, QPalette.ToolTipBase, brush)
        brush = QBrush(QColor(0, 0, 0))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QPalette.Disabled, QPalette.ToolTipText, brush)
        self.calendarWidget.setPalette(palette)
        font = QFont()
        font.setFamily(_fromUtf8("Monospace"))
        font.setPointSize(12)
        font.setStyleStrategy(QFont.PreferAntialias)
        self.calendarWidget.setFont(font)
        self.calendarWidget.setContextMenuPolicy(QtCore.Qt.DefaultContextMenu)
        self.calendarWidget.setFirstDayOfWeek(QtCore.Qt.Monday)
        self.calendarWidget.setGridVisible(True)
        self.calendarWidget.setHorizontalHeaderFormat(
            QCalendarWidget.ShortDayNames)
        self.calendarWidget.setDateEditEnabled(True)
        self.calendarWidget.setObjectName(_fromUtf8("calendarWidget"))
        self.horizontalLayout.addWidget(self.calendarWidget)

        self.retranslateUi(PostX_Calendar)
        QtCore.QMetaObject.connectSlotsByName(PostX_Calendar)

    def retranslateUi(self, PostX_Calendar):
        PostX_Calendar.setWindowTitle(
            _translate("PostX_Calendar", "PostX-Calendar-QT5", None))
        PostX_Calendar.setToolTip(
            _translate("PostX_Calendar", "PostX-Calendar", None))
        self.calendarWidget.setToolTip(
            _translate("PostX_Calendar", "PostX-Calendar", None))
コード例 #7
0
    def __init__(self):
        super().__init__()
        self.title = "ESS VRL Unavailability Tool"
        self.top = 400
        self.left = 400
        self.width = 400
        self.height = 400
        self.setWindowTitle(self.title)
        self.setGeometry(self.left, self.top, self.width, self.height)

        f = open("tdb.txt", "r")
        startdate = f.readline()
        starr = startdate.split(".")
        print(starr)

        #date = QDate.fromString()

        vbox = QVBoxLayout()
        calendar = QCalendarWidget()
        calendar.setGridVisible(True)
        calendar.setFirstDayOfWeek(QtCore.Qt.Thursday)
        #calendar.setSelectedDate()

        lbl = QLabel()
        lbl.setText("Select a Thursday date to start week with")
        vbox.addWidget(lbl)

        vbox.addWidget(calendar)

        #self.setLayout(grid)
        f = open("tdb.txt", "r")
        startdate = f.readline()
        enddate = f.readline()
        times = []
        temp_times = []

        for n in range(0, 7):
            temp_times = f.readline().split()
            times.append(temp_times)
        print(times)

        grid = QGridLayout()

        day = ["Thurs", "Fri", "Sat", "Sun", "Mon", "Tues", "Weds"]
        for i in range(1, 8):
            daycount = QLabel()
            daycount.setText(day[i - 1])
            grid.addWidget(daycount, i, 0)
            for j in range(2, 6):
                box = QLineEdit()
                box.setText(times[i - 1][j - 2])
                grid.addWidget(box, i, j)

        def handleButton():
            date = calendar.selectedDate()
            strdate = QDate.toPyDate(date)
            enddate = strdate + timedelta(days=6)

            strdate = str(strdate)
            strdate = strdate.split("-")
            enddate = str(enddate)
            enddate = enddate.split("-")
            print(strdate)
            print(enddate)
            #FILE READING
            f = open("tdb.txt", "r")
            startdate = f.readline()
            enddate = f.readline()

            times = []
            temp_times = []

            for n in range(0, 7):
                temp_times = f.readline().split()
                times.append(temp_times)
                #print(temp_times)
            msg = f.readline()
            #FILE WRITING
            f = open("tdb.txt", "w")
            f.write(strdate[2] + "." + strdate[1] + "." + strdate[0] + "\n")
            f.write(
                str(enddate[2]) + "." + str(enddate[1]) + "." +
                str(enddate[0]) + "\n")

        bbox = QVBoxLayout()
        button = QPushButton()
        button.setText("Set Unavailability")
        button.clicked.connect(handleButton)
        bbox.addWidget(button)

        vall = QVBoxLayout()
        vall.addLayout(vbox)
        vall.addLayout(grid)
        vall.addLayout(bbox)
        self.setLayout(vall)

        self.show()
コード例 #8
0
class IncomeEventClaster(QDialog):
    def __init__(self, header, IncomeSourceCategory, currency, parent = None):
        QDialog.__init__(self, parent)
        self._acceptState = False
        self._dataContainer = {}
        self._header = header
        self._IncomeSourceCategory = IncomeSourceCategory
        self._Currency = currency
        self.date = [1993,1,22]

        self.InitUI()
        self.addRowWidgets()
        self.show()
#+++++++++++++++++++++++++++ InitUI +++++++++++++++++++++++++++++++++++
    def InitUI(self):
        self.setWindowTitle("მონაცემთა შეტანა")
        self.setWindowIcon(QtGui.QIcon("icon/income.svg"))
        self.setFixedSize(750, 900)
        vbox = QVBoxLayout()
        hbox = QHBoxLayout()
        vbox.setContentsMargins(2, 2, 2, 2)
########################### Calendar ##################################
        self.calendar = QCalendarWidget()
        self.calendar.setGridVisible(True)
        self.calendar.setFirstDayOfWeek(Qt.Monday)
############################ Table ####################################
        self.table = QTableWidget()
        self.table.setRowCount(1)
        self.table.setColumnCount(len(self._header))
        self.table.setHorizontalHeaderLabels(self._header)
        self.table.setSortingEnabled(False)
        self.table.setWordWrap(True)
        self.rowNumb = self.table.rowCount()-1
########################### add Row ###################################
        self.addRowButton = QPushButton('დამატება')
        self.addRowButton.setMaximumWidth(100)
        self.addRowButton.setIcon(QIcon('icon/addRow.svg'))
        self.addRowButton.clicked.connect(self.addRow)
########################### del Row ###################################
        self.delRowButton = QPushButton('წაშლა')
        self.delRowButton.setMaximumWidth(100)
        self.delRowButton.setIcon(QIcon('icon/DelRow.svg'))
        self.delRowButton.clicked.connect(self.delRow)
############################# test ####################################
        self.testButton = QPushButton('ტესტი')
        self.testButton.setIcon(QIcon('icon/test.png'))
        self.testButton.clicked.connect(self.test)
############################ Accept ###################################
        self.acceptButton = QPushButton('დადასტურება', self)
        self.acceptButton.clicked.connect(self.acceptDialog)
############################ Reject ###################################
        self.rejectButton = QPushButton('გაუქმება', self)
        self.rejectButton.clicked.connect(self.rejectDialog)
#################### Add widgets on layouts ###########################
        hbox.addWidget(self.addRowButton)
        hbox.addWidget(self.delRowButton)

        vbox.addWidget(self.calendar,5)
        vbox.addWidget(self.table,90)
        vbox.addLayout(hbox)
        vbox.addWidget(self.testButton,5)
        hboxAcceptReject = QHBoxLayout()
        hboxAcceptReject.addWidget(self.acceptButton)
        hboxAcceptReject.addWidget(self.rejectButton)
        vbox.addLayout(hboxAcceptReject)
        self.setLayout(vbox)
#++++++++++++++++++++++++++ Add Row +++++++++++++++++++++++++++++++++++
    def addRow(self):
        self.rowNumb = self.table.rowCount()
        self.table.insertRow(self.rowNumb)
        self.addRowWidgets()
#++++++++++++++++++++++ Add Row Widgets +++++++++++++++++++++++++++++++
    def addRowWidgets(self):
########################## emountEdit #################################
        quantityEdit = QLineEdit('')
        quantityEdit.setValidator(QDoubleValidator())
###################### Currency Selector ##############################
        CurrencySelector = QComboBox()
        for idx, key in enumerate(self._Currency):
            CurrencySelector.addItem(key)
            CurrencySelector.setItemData(idx, Qt.AlignCenter, Qt.TextAlignmentRole)
            CurrencySelector.setItemIcon(idx, QtGui.QIcon(self._Currency[key]))

        quantityEditHlayout = QHBoxLayout()
        quantityEditHlayout.addWidget(quantityEdit,50)
        quantityEditHlayout.addWidget(CurrencySelector,50)

        quantityEditWidgets = QWidget()
        quantityEditWidgets.setLayout(quantityEditHlayout)
################## Income Category Selector ###########################
        incomeCategorySelector = QComboBox()
        incomeCategorySelector.addItems(self._IncomeSourceCategory)

        self.table.setCellWidget(self.rowNumb, 0, incomeCategorySelector)
        self.table.setCellWidget(self.rowNumb, 1, quantityEditWidgets)
        self.table.cellWidget(self.rowNumb,0).activated.connect(self.incomeCategoryFormater)
################### Set Table Cell Widths #############################
        self.table.verticalHeader().setSectionResizeMode(QHeaderView.ResizeToContents)
        self.table.horizontalHeader().setSectionResizeMode(0, QHeaderView.Stretch)
        self.table.horizontalHeader().setSectionResizeMode(1, QHeaderView.Stretch)
# +++++++++++++ String to float number formater +++++++++++++++++++++++
    def _stingToFloatFormater(self, value):
        if ',' in value:
            value = value.replace(",", ".")
            return value
        else:
            return value
#++++++++++++++++++++++++ Delete Row ++++++++++++++++++++++++++++++++++
    def delRow(self):
        self.rowNumb = self.table.rowCount()
        if self.rowNumb > 1:
            selected_Row = self.table.currentRow()
            self.table.removeRow(selected_Row)
        self.table.horizontalHeader().setSectionResizeMode(0, QHeaderView.Stretch)
        self.table.horizontalHeader().setSectionResizeMode(1, QHeaderView.Stretch)
#+++++++++++++++++++++ Set calendar date ++++++++++++++++++++++++++++++
    def setCalendarDate(self, date):
        self.calendar.setSelectedDate(QDate(date[0], date[1], date[2]))
#+++++++++++++++++++++ Make data claster ++++++++++++++++++++++++++++++
    def makeDataClaster(self):
        self._dataContainer = {}
        dataContainerArray = []
        self.rowNumb = self.table.rowCount()
        self.colNumb = self.table.columnCount()
        for row in range(self.rowNumb):
            dataContainerTemp = []
            for column in range(self.colNumb):
                if column == 0:
                    dataContainerTemp.append({'cell_0'   : self.table.cellWidget(row,column).currentIndex()})
                elif column == 1:
                    if len(self.table.cellWidget(row, 1).children()[0]) == 2:
                        dataContainerTemp.append({'cell_1.1' : self.table.cellWidget(row,column).children()[1].text(),
                                                  'cell_1.2' : self.table.cellWidget(row,column).children()[2].currentIndex()})
                    elif len(self.table.cellWidget(row, 1).children()[0]) == 4:
                        dataContainerTemp.append({'cell_1.1' : self._stingToFloatFormater(self.table.cellWidget(row,column).children()[1].text()),
                                                  'cell_1.2' : self.table.cellWidget(row,column).children()[2].currentIndex(),
                                                  'cell_1.3' : self._stingToFloatFormater(self.table.cellWidget(row,column).children()[3].text()),
                                                  'cell_1.4' : self.table.cellWidget(row,column).children()[4].currentIndex()})
            dataContainerArray.append(dataContainerTemp)
        self._dataContainer.update({self.calendar.selectedDate().toString("dd.MM.yyyy") : dataContainerArray})
#+++++++++++++++++++++ Edit data claster ++++++++++++++++++++++++++++++
    def EditDataClaster(self, DataClasterComponent, timeStamp):
        for _ in range(len(DataClasterComponent)-1):
            self.addRow()
        self.setCalendarDate(QDate.fromString(timeStamp, 'dd.MM.yyyy').getDate())
        
        for row, rowData in enumerate(DataClasterComponent):
            self.table.cellWidget(row, 0).setCurrentIndex(rowData[0]['cell_0'])
            self.table.cellWidget(row, 1).children()[1].setText(rowData[1]['cell_1.1'])
            self.table.cellWidget(row, 1).children()[2].setCurrentIndex(rowData[1]['cell_1.2'])
        
            if len(rowData[1]) == 4:
                quantityEdit = QLineEdit('')
                quantityEdit.setValidator(QDoubleValidator())
                CurrencySelector = QComboBox()
                for idx, key in enumerate(self._Currency):
                    CurrencySelector.addItem(key)
                    CurrencySelector.setItemData(idx, Qt.AlignCenter, Qt.TextAlignmentRole)
                    CurrencySelector.setItemIcon(idx, QtGui.QIcon(self._Currency[key]))

                self.table.cellWidget(row, 1).children()[0].addWidget(quantityEdit,50)
                self.table.cellWidget(row, 1).children()[0].addWidget(CurrencySelector,50)

                self.table.cellWidget(row, 1).children()[3].setText(rowData[1]['cell_1.3'])
                self.table.cellWidget(row, 1).children()[4].setCurrentIndex(rowData[1]['cell_1.4'])
        self.table.horizontalHeader().setSectionResizeMode(0, QHeaderView.Stretch)
        self.table.horizontalHeader().setSectionResizeMode(1, QHeaderView.Stretch)
#++++++++++++++++++++++++++ Accept ++++++++++++++++++++++++++++++++++++
    def acceptDialog(self):
        self.makeDataClaster()
        self._acceptState = True
        self.close()
#++++++++++++++++++++++++++ Reject ++++++++++++++++++++++++++++++++++++
    def rejectDialog(self):
        self._acceptState = False
        self.close()
#++++++++++++++++++ Get data claster part +++++++++++++++++++++++++++++
    def getDataClasterPart(self):
        return self._dataContainer, self._acceptState
#++++++++++++++++++ incomeCategoryFormater ++++++++++++++++++++++++++++
    def incomeCategoryFormater(self):
        changedSelectrorIndex = self.sender()
        self.rowNumb = self.table.rowCount()
        for  row in range (self.rowNumb):
            if self.table.cellWidget(row,0) == changedSelectrorIndex:
                if self.table.cellWidget(row,0).currentIndex() == 7:
                    if len(self.table.cellWidget(row, 1).children()[0]) == 2:
                        quantityEdit = QLineEdit('')
                        quantityEdit.setValidator(QDoubleValidator())
                        CurrencySelector = QComboBox()
                        for idx, key in enumerate(self._Currency):
                            CurrencySelector.addItem(key)
                            CurrencySelector.setItemData(idx, Qt.AlignCenter, Qt.TextAlignmentRole)
                            CurrencySelector.setItemIcon(idx, QtGui.QIcon(self._Currency[key]))

                        self.table.cellWidget(row, 1).children()[0].addWidget(quantityEdit,50)
                        self.table.cellWidget(row, 1).children()[0].addWidget(CurrencySelector,50)
                else:
                    try:
                        self.table.cellWidget(row, 1).children()[0].itemAt(2).widget().deleteLater()
                        self.table.cellWidget(row, 1).children()[0].itemAt(3).widget().deleteLater()
                    except AttributeError:
                        pass
        self.table.horizontalHeader().setSectionResizeMode(0, QHeaderView.Stretch)
        self.table.horizontalHeader().setSectionResizeMode(1, QHeaderView.Stretch)
    def read(self):
        return self._dataContainer
#+++++++++++++++++++++++++++ Test +++++++++++++++++++++++++++++++++++++
    def test(self):
        print("Test")
        self.makeDataClaster()
コード例 #9
0
class OutcomeEventClaster(QDialog):
    def __init__(self, header, outComeEventNames, outComeCategory, units, currency, parent = None):
        QDialog.__init__(self, parent)
        self._acceptState = False
        self._dataContainer = {}
        self._header = header
        self._Currency = currency
        self._units = units
        self._category = outComeCategory
        self._EventNames = outComeEventNames
        
        self.InitUI()
        self.addRowWidgets()
        self.show()
#++++++++++++++++++++++++++++++ InitUI ++++++++++++++++++++++++++++++++
    def InitUI(self):
        self.setWindowTitle("მონაცემთა შეტანა")
        self.setWindowIcon(QtGui.QIcon("icon/outcome.svg"))
        self.setFixedSize(1300, 900)
        vbox = QVBoxLayout()
        hbox = QHBoxLayout()
        vbox.setContentsMargins(2, 2, 2, 2)
############################## Calendar ###############################
        self.calendar = QCalendarWidget()
        self.calendar.setGridVisible(True)
        self.calendar.setFirstDayOfWeek(Qt.Monday)
############################### Table #################################
        self.table = QTableWidget()
        self.table.setRowCount(1)
        self.table.setColumnCount(len(self._header))
        self.table.setHorizontalHeaderLabels(self._header)
        self.table.verticalHeader().setSectionResizeMode(QHeaderView.ResizeToContents)
        self.table.resizeRowsToContents()
        self.table.setSortingEnabled(False)
        self.table.setWordWrap(True)
        self.rowNumb = self.table.rowCount()-1
############################## add Row ################################
        self.addRowButton = QPushButton('დამატება')
        self.addRowButton.setMaximumWidth(100)
        self.addRowButton.setIcon(QIcon('icon/addRow.svg'))
        self.addRowButton.clicked.connect(self.addRow)
############################## del Row ################################
        self.delRowButton = QPushButton('წაშლა')
        self.delRowButton.setMaximumWidth(100)
        self.delRowButton.setIcon(QIcon('icon/DelRow.svg'))
        self.delRowButton.clicked.connect(self.delRow)
############################### test ##################################
        sumHboxLayout = QHBoxLayout()
        self.sumMoney = QLineEdit()
        self.equivalentSumMoney = QLineEdit()
        sumHboxLayout.addWidget(self.sumMoney)
        sumHboxLayout.addWidget(self.equivalentSumMoney)
        self.testButton = QPushButton('ტესტი')
        self.testButton.setIcon(QIcon('icon/test.png'))
        self.testButton.clicked.connect(self.test)
############################## Accept #################################
        self.acceptButton = QPushButton('დადასტურება', self)
        self.acceptButton.clicked.connect(self.acceptDialog)
############################## Reject #################################
        self.rejectButton = QPushButton('გაუქმება', self)
        self.rejectButton.clicked.connect(self.rejectDialog)
###################### Add widgets on layouts #########################
        hbox.addWidget(self.addRowButton)
        hbox.addWidget(self.delRowButton)

        vbox.addWidget(self.calendar,5)
        vbox.addWidget(self.table,90)
        vbox.addLayout(hbox)
        vbox.addLayout(sumHboxLayout)
        vbox.addWidget(self.testButton,5)
        hboxAcceptReject = QHBoxLayout()
        hboxAcceptReject.addWidget(self.acceptButton)
        hboxAcceptReject.addWidget(self.rejectButton)
        vbox.addLayout(hboxAcceptReject)
        self.setLayout(vbox)
#++++++++++++++++++++++++++++ Add Row +++++++++++++++++++++++++++++++++
    def addRow(self):
        self.rowNumb = self.table.rowCount()
        self.table.insertRow(self.rowNumb)
        self.addRowWidgets()
#++++++++++++++++++++++++ Add Row Widgets +++++++++++++++++++++++++++++
    def addRowWidgets(self):
########################### emountEdit ################################
        quantityEdit = QLineEdit('1')
        quantityEdit.setValidator(QDoubleValidator())
        quantityEdit.setMaximumWidth(30)

        units = QComboBox()
        units.setToolTip("<h5>ერთეული")
        units.setMaximumWidth(70)
        units.addItems(self._units)

        quantityEditHlayout = QHBoxLayout()
        quantityEditHlayout.addWidget(quantityEdit,20)
        quantityEditHlayout.addWidget(units,80)

        quantityEditWidgets = QWidget()
        quantityEditWidgets.setLayout(quantityEditHlayout)
####################### Category Selector #############################
        outcomeCategorySelector = QComboBox()
        outcomeCategorySelector.addItems(self._category)
########################## Price Editor ###############################
        PriceEdit = QLineEdit()
        PriceEdit.setValidator(QDoubleValidator())
        PriceEdit.setToolTip("<h5>გადახდა")
        PriceEdit.setMaximumWidth(70)
#################### Equivalent Price Editor ##########################
        equivalentPriceEdit = QLineEdit()
        equivalentPriceEdit.setValidator(QDoubleValidator())
        equivalentPriceEdit.setText("--")
        equivalentPriceEdit.setToolTip("<h5>კონვერტაცია ვალუტაში")
        equivalentPriceEdit.setMaximumWidth(70)
####################### Currency Selector #############################
        CurrencySelector = QComboBox()
        for idx, key in enumerate(self._Currency):
            CurrencySelector.addItem(key)
            CurrencySelector.setItemData(idx, Qt.AlignCenter, Qt.TextAlignmentRole)
            CurrencySelector.setItemIcon(idx, QtGui.QIcon(self._Currency[key]))
################# Equivalent Currency Selector ########################
        EqviCurrencySelector = QComboBox()
        for idx, key in enumerate(self._Currency):
            EqviCurrencySelector.addItem(key)
            EqviCurrencySelector.setItemData(idx, Qt.AlignCenter, Qt.TextAlignmentRole)
            EqviCurrencySelector.setItemIcon(idx, QtGui.QIcon(self._Currency[key]))
###################### App widgets in cells ###########################
        priceHlayout = QHBoxLayout()
        priceHlayout.addWidget(PriceEdit)
        priceHlayout.addWidget(CurrencySelector)
        priceHlayout.addWidget(equivalentPriceEdit)
        priceHlayout.addWidget(EqviCurrencySelector)

        priceWidgets = QWidget()
        priceWidgets.setLayout(priceHlayout)

        PayMethodWidgets = QWidget()

        PayMethod = QCheckBox()
        PayMethod.setToolTip("<h5>ნაღდით გადახდა")
        PayMethodHlayout = QHBoxLayout()
        PayMethodHlayout.addWidget(PayMethod)
        PayMethodHlayout.setAlignment( Qt.AlignCenter )
        PayMethodWidgets.setLayout(PayMethodHlayout)

        eventContent = QTableWidgetItem('')
        self.table.setItem(self.rowNumb, 0, eventContent)
        eventContent.setData(Qt.UserRole, random.sample(self._EventNames, len(self._EventNames)))
        self.table.setItemDelegate(TableItemCompleter(self.table))

        self.table.setCellWidget(self.rowNumb, 1, quantityEditWidgets)
        self.table.setCellWidget(self.rowNumb, 2, outcomeCategorySelector)
        self.table.setCellWidget(self.rowNumb, 3, priceWidgets)
        self.table.setCellWidget(self.rowNumb, 4, PayMethodWidgets)
###################### Set Table Cell Widths ##########################
        self.table.verticalHeader().setSectionResizeMode(QHeaderView.ResizeToContents)

        self.table.horizontalHeader().setSectionResizeMode(0, QHeaderView.Stretch)
        self.table.horizontalHeader().setSectionResizeMode(1, QHeaderView.ResizeToContents)
        self.table.horizontalHeader().setSectionResizeMode(2, QHeaderView.ResizeToContents)
        self.table.horizontalHeader().setSectionResizeMode(3, QHeaderView.ResizeToContents)
        self.table.horizontalHeader().setSectionResizeMode(4, QHeaderView.ResizeToContents)
# +++++++++++++ String to float number formater +++++++++++++++++++++++
    def _stingToFloatFormater(self, value):
        if ',' in value:
            value = value.replace(",", ".")
            return value
        else:
            return value
#++++++++++++++++++++++++++ Delete Row ++++++++++++++++++++++++++++++++
    def delRow(self):
        self.rowNumb = self.table.rowCount()
        if self.rowNumb > 1:
            selected_Row = self.table.currentRow()
            self.table.removeRow(selected_Row)
#++++++++++++++++++++++ Set calendar date +++++++++++++++++++++++++++++
    def setCalendarDate(self, date):
        self.calendar.setSelectedDate(QDate(date[0], date[1], date[2]))
#++++++++++++++++++++++ Make data claster +++++++++++++++++++++++++++++
    def makeDataClaster(self):
        self._dataContainer = {}
        dataContainerArray = []
        self.rowNumb = self.table.rowCount()
        self.colNumb = self.table.columnCount()
        for row in range(self.rowNumb):
            dataContainerTemp = []
            for column in range(self.colNumb):
                if column == 0:
                    dataContainerTemp.append({'cell_0'   : self.table.item(row,column).text()})
                elif column == 1:
                    dataContainerTemp.append({'cell_1.1' : self._stingToFloatFormater(self.table.cellWidget(row,column).children()[1].text()),
                                              'cell_1.2' : self.table.cellWidget(row,column).children()[2].currentIndex()})
                elif column == 2:
                    dataContainerTemp.append({'cell_2.1' : self.table.cellWidget(row,column).currentIndex()})
                elif column == 3:
                    dataContainerTemp.append({'cell_3.1' : self._stingToFloatFormater(self.table.cellWidget(row,column).children()[1].text()),
                                              'cell_3.2' : self.table.cellWidget(row,column).children()[2].currentIndex(),
                                              'cell_3.3' : self._stingToFloatFormater(self.table.cellWidget(row,column).children()[3].text()),
                                              'cell_3.4' : self.table.cellWidget(row,column).children()[4].currentIndex()})
                elif column == 4:
                    dataContainerTemp.append({'cell_4'   : self.table.cellWidget(row,column).children()[1].isChecked()})
            dataContainerArray.append(dataContainerTemp)
        self._dataContainer.update({self.calendar.selectedDate().toString("dd.MM.yyyy") : dataContainerArray})
#++++++++++++++++++++++ Edit data claster +++++++++++++++++++++++++++++
    def EditDataClaster(self, DataClasterComponent, timeStamp):
        for _ in range(len(DataClasterComponent)-1):
            self.addRow()
        self.setCalendarDate(QDate.fromString(timeStamp, 'dd.MM.yyyy').getDate())
        for row in range(len(DataClasterComponent)):
            self.table.item(row, 0).setText(DataClasterComponent[row][0]['cell_0'])
            self.table.cellWidget(row, 1).children()[1].setText(DataClasterComponent[row][1]['cell_1.1'])
            self.table.cellWidget(row, 1).children()[2].setCurrentIndex(DataClasterComponent[row][1]['cell_1.2'])
            self.table.cellWidget(row, 2).setCurrentIndex(DataClasterComponent[row][2]['cell_2.1'])
            self.table.cellWidget(row, 3).children()[1].setText(DataClasterComponent[row][3]['cell_3.1'])
            self.table.cellWidget(row, 3).children()[2].setCurrentIndex(DataClasterComponent[row][3]['cell_3.2'])
            self.table.cellWidget(row, 3).children()[3].setText(DataClasterComponent[row][3]['cell_3.3'])
            self.table.cellWidget(row, 3).children()[4].setCurrentIndex(DataClasterComponent[row][3]['cell_3.4'])
            self.table.cellWidget(row, 4).children()[1].setChecked(DataClasterComponent[row][4]['cell_4'])
#+++++++++++++++++++++++++++ Accept +++++++++++++++++++++++++++++++++++
    def acceptDialog(self):
        self.makeDataClaster()
        self._acceptState = True
        self.close()
#+++++++++++++++++++++++++++ Reject +++++++++++++++++++++++++++++++++++
    def rejectDialog(self):
        self._acceptState = False
        self.close()
#++++++++++++++++++++ Get data claster part +++++++++++++++++++++++++++
    def getDataClasterPart(self):
        return self._dataContainer, self._acceptState
#++++++++++++++++++++++++++++ Test ++++++++++++++++++++++++++++++++++++
    def test(self):
        print("Test")
        data =  {'22.01.1993': [  [	{'cell_0': 'პური'},
                                    {'cell_1.1': '2', 'cell_1.2': 1},
                                    {'cell_2.1': 2},
                                    {   'cell_3.1': '30',
                                        'cell_3.2': 1,
                                        'cell_3.3': '100',
                                        'cell_3.4': 0},
                                    {'cell_4': True}],
                                  [ {'cell_0': 'ლობიო'},
                                    {'cell_1.1': '5', 'cell_1.2': 1},
                                    {'cell_2.1': 3},
                                    {   'cell_3.1': '64',
                                        'cell_3.2': 2,
                                        'cell_3.3': '54',
                                        'cell_3.4': 3},
                                    {'cell_4': True}]]}
        #self.EditDataClaster(data)
        self.makeDataClaster()
        self.rowNumb = self.table.rowCount()
        sumMoney = 0
        equiSumMoney = 0
        for row in range(self.rowNumb):
            try:
                sumMoney = sumMoney + round(float(self.table.cellWidget(row,3).children()[1].text()), 2)
            except ValueError:
                pass
            try:
                equiSumMoney = equiSumMoney + round(float(self.table.cellWidget(row,3).children()[3].text()), 2)
            except ValueError:
                pass
        self.sumMoney.setText(str(sumMoney))
        self.equivalentSumMoney.setText(str(equiSumMoney))
コード例 #10
0
class WorkoutPlanner(QWidget):
    def __init__(self):
        super().__init__()
        self.setStyleSheet("""
    QWidget{
      color:#c7c7c7;
      font-weight: bold;
    }
    QPushButton{
      background-color: rgba(0, 0, 0, 0);
      border: 1px solid;
      font-size: 18px;
      font-weight: bold;
      border-color: #808080;
      min-height: 28px;
      white-space:nowrap;
      text-align: left;
      padding-left: 5%;
      font-family: Montserrat;
    }
    QPushButton:hover:!pressed{
      border: 2px solid;
      border-color: #747474;
    }
    QPushButton:pressed{
      border: 2px solid;
      background-color: #323232;
      border-color: #6C6C6C;
    }""")

        self.db_wrapper = DatabaseWrapper()
        self.table_name = "Workouts"
        self.db_wrapper.create_local_table(self.table_name)
        if self.db_wrapper.local_table_is_empty(self.table_name):
            self.db_wrapper.insert_default_values(self.table_name)
        self.fetched_workouts = json.loads(
            self.db_wrapper.fetch_local_column(self.table_name, "workouts"))
        self.current_date = datetime.today().strftime("%d/%m/%Y")
        if not self.current_date in self.fetched_workouts:
            self.fetched_workouts[self.current_date] = {
                "Personal Notes": "",
                "Workout Name": "None"
            }
            self.db_wrapper.update_table_column(
                self.table_name, "workouts", json.dumps(self.fetched_workouts))
        self.create_panel()

    def create_panel(self):
        self.grid = QGridLayout()
        self.grid.addWidget(self.create_calendar(), 0, 0, 2, 1)
        self.grid.addWidget(self.create_stats(), 0, 1, 2, 1)
        self.grid.addWidget(self.create_left_details(), 2, 0, 2, 1)
        self.grid.addWidget(self.create_right_details(), 2, 1, 2, 1)
        self.setLayout(self.grid)

    def create_calendar(self):
        frame = QFrame()
        frame.setFrameStyle(QFrame.StyledPanel)

        layout = QHBoxLayout()

        self.calendar = QCalendarWidget(self)
        self.calendar.setLocale(QLocale(QLocale.English))
        self.calendar.setFirstDayOfWeek(Qt.DayOfWeek.Monday)
        self.calendar.clicked.connect(lambda: self.show_date())
        layout.addWidget(self.calendar)

        frame.setLayout(layout)

        return frame

    def create_stats(self):
        frame = QFrame()
        frame.setFrameStyle(QFrame.StyledPanel)

        stats_layout = QVBoxLayout()
        stats_label = QLabel("Stats")
        stats_label.setFont(QFont("Ariel", 18, weight=QFont.Bold))

        number_of_workouts = QLabel(" ".join([
            "Total Number Of Workouts Done:",
            str(len(self.fetched_workouts))
        ]))

        counter_this_month = 0
        for date in self.fetched_workouts:
            if date.split("/")[1] == self.current_date.split("/")[1]:
                counter_this_month += 1

        workouts_done_this_month = QLabel(" ".join(
            ["Workouts Done This Month:",
             str(counter_this_month)]))

        last_workout = list(self.fetched_workouts.keys())[-1]
        for date, workout in reversed(list(self.fetched_workouts.items())):
            if len(workout) > 1:  # found workout that is not todays default
                last_workout = date
                break
        last_workout = QLabel(" ".join(["Last Workout:", last_workout]))

        stats_layout.addWidget(stats_label)
        stats_layout.addWidget(number_of_workouts)
        stats_layout.addWidget(workouts_done_this_month)
        stats_layout.addWidget(last_workout)

        frame.setLayout(stats_layout)

        return frame

    def create_left_details(self):
        frame = QFrame()
        frame.setFrameStyle(QFrame.StyledPanel)

        layout = QVBoxLayout()

        self.day_label = QLabel(self.current_date)
        self.day_label.setFont(QFont("Ariel", 18, weight=QFont.Bold))

        workout_done_layout = QHBoxLayout()
        self.workout_done_label = QLabel(" ".join([
            "Workout Done:",
            self.fetched_workouts[self.current_date]["Workout Name"]
        ]))
        workout_done_button = QPushButton("Change")
        workout_done_button.clicked.connect(lambda: self.change_workout_done())
        workout_done_layout.addWidget(self.workout_done_label)
        workout_done_layout.addWidget(workout_done_button)

        specific_workout_layout = QHBoxLayout()
        specific_workout_label = QLabel(
            "Create a workout specific for one day: ")
        specific_workout_button = QPushButton("1 Time Workout")
        specific_workout_button.clicked.connect(
            lambda: self.show_1_time_window())
        specific_workout_layout.addWidget(specific_workout_label)
        specific_workout_layout.addWidget(specific_workout_button)

        personal_notes_layout = QVBoxLayout()
        personal_notes_label = QLabel("Personal Notes:")
        self.text_edit = QTextEdit()
        self.text_edit.setStyleSheet("color: black;")
        self.text_edit.setText(
            self.fetched_workouts[self.current_date]["Personal Notes"])
        self.personal_notes_save_button = QPushButton("Save Changes")
        self.personal_notes_save_button.clicked.connect(
            lambda: self.update_personal_notes())
        personal_notes_layout.addWidget(personal_notes_label)
        personal_notes_layout.addWidget(self.text_edit)
        personal_notes_layout.addWidget(self.personal_notes_save_button)

        layout.addWidget(self.day_label)
        layout.addLayout(workout_done_layout)
        layout.addLayout(specific_workout_layout)
        layout.addLayout(personal_notes_layout)
        frame.setLayout(layout)

        return frame

    def create_right_details(self):
        frame = QFrame()
        frame.setFrameStyle(QFrame.StyledPanel)

        layout = QVBoxLayout()
        layout.setAlignment(Qt.AlignTop)

        details_label = QLabel("Workout Details")
        details_label.setFont(QFont("Ariel", 18, weight=QFont.Bold))

        self.grid_layout = QGridLayout()
        name_label = QLabel("Exercise Name")
        sets_label = QLabel("Sets")
        reps_label = QLabel("Reps")
        rest_label = QLabel("Rest")

        layout.addWidget(details_label)
        self.grid_layout.addWidget(name_label, 0, 0)
        self.grid_layout.addWidget(sets_label, 0, 1)
        self.grid_layout.addWidget(reps_label, 0, 2)
        self.grid_layout.addWidget(rest_label, 0, 3)

        if "Exercises" in self.fetched_workouts[self.current_date]:
            exercises_count = len(
                self.fetched_workouts[self.current_date]["Exercises"])

            self.number_of_exercises_label = QLabel(" ".join(
                ["Number of Exercises:",
                 str(exercises_count)]))

            set_count = 0

            for exercise in self.fetched_workouts[
                    self.current_date]["Exercises"]:
                set_count += int(self.fetched_workouts[self.current_date]
                                 ["Exercises"][exercise]["Sets"])

            self.total_set_count_label = QLabel(" ".join(
                ["Total Set Count:", str(set_count)]))

            layout.addWidget(self.number_of_exercises_label)
            layout.addWidget(self.total_set_count_label)

            names_labels = [None] * len(
                self.fetched_workouts[self.current_date]["Exercises"].keys())
            sets_labels = [None] * len(
                self.fetched_workouts[self.current_date]["Exercises"].keys())
            reps_labels = [None] * len(
                self.fetched_workouts[self.current_date]["Exercises"].keys())
            rest_labels = [None] * len(
                self.fetched_workouts[self.current_date]["Exercises"].keys())

            j = 1
            for i, exercise in enumerate(self.fetched_workouts[
                    self.current_date]["Exercises"].keys()):
                names_labels[i] = QLabel(exercise)
                sets_labels[i] = QLabel(
                    str(self.fetched_workouts[self.current_date]["Exercises"]
                        [exercise]["Sets"]))
                reps_labels[i] = QLabel(
                    str(self.fetched_workouts[self.current_date]["Exercises"]
                        [exercise]["Reps"]))
                rest_labels[i] = QLabel(
                    str(self.fetched_workouts[self.current_date]["Exercises"]
                        [exercise]["Rest"]))

                self.grid_layout.addWidget(names_labels[i], j, 0)
                self.grid_layout.addWidget(sets_labels[i], j, 1)
                self.grid_layout.addWidget(reps_labels[i], j, 2)
                self.grid_layout.addWidget(rest_labels[i], j, 3)
                j += 1

        layout.addWidget(QLabel(""))
        layout.addLayout(self.grid_layout)
        frame.setLayout(layout)

        return frame

    def show_date(self):
        self.current_date = self.get_calendar_date()
        if not self.current_date in self.fetched_workouts:
            self.fetched_workouts[self.current_date] = {
                "Personal Notes": "",
                "Workout Name": "None"
            }
        self.day_label.setText(self.current_date)
        self.refresh_workout_done(True, True)
        self.text_edit.setText(
            self.fetched_workouts[self.current_date]["Personal Notes"])

    def get_calendar_date(self):
        date = self.calendar.selectedDate()
        day = str(date.day()) if date.day() > 9 else "0" + str(date.day())
        month = str(
            date.month()) if date.month() > 9 else "0" + str(date.month())
        parsed_date = "/".join([day, month, str(date.year())])
        return parsed_date

    def show_1_time_window(self):
        self.create_workout_window = CreateWorkoutWindow(
            one_time=True, date=self.get_calendar_date())
        if self.db_wrapper.connection_exists:
            self.create_workout_window.refresh_after_creating_signal.connect(
                lambda signal: self.refresh_workout_done(signal))
        self.create_workout_window.setGeometry(100, 200, 300, 300)
        self.create_workout_window.show()

    def update_personal_notes(self):
        self.fetched_workouts[self.current_date][
            "Personal Notes"] = self.text_edit.toPlainText()
        self.db_wrapper.update_table_column(self.table_name, "workouts",
                                            json.dumps(self.fetched_workouts))

    def change_workout_done(self):
        self.select_workout_window = SelectWorkout(self.get_calendar_date())
        self.select_workout_window.refresh_workout_done_signal.connect(
            lambda signal: self.refresh_workout_done(signal))
        self.select_workout_window.setGeometry(100, 200, 300, 300)
        self.select_workout_window.show()

    @pyqtSlot(bool)
    def refresh_workout_done(self, signal, date_change=False):
        if signal:
            if not date_change:
                self.fetched_workouts = json.loads(
                    self.db_wrapper.fetch_local_column(self.table_name,
                                                       "workouts"))
            self.workout_done_label.setText(" ".join([
                "Workout Done:",
                self.fetched_workouts[self.current_date]["Workout Name"]
            ]))
            old_right_details_reference = self.grid.itemAt(3).widget()
            new_right_details = self.create_right_details()
            self.grid.replaceWidget(old_right_details_reference,
                                    new_right_details)
            old_right_details_reference.setParent(None)
コード例 #11
0
class SelectSession(QWidget):
    def update(self):
        self.glob.socket.send_json(dict(action='listsessions'))
        res = self.glob.socket.recv_json()
        self.dates = set()

        self.lst.insertItems(0, [d + " " + name for d, name in res])
        for d, n in res:
            self.dates.add(d.split(' ')[0])

        format = QtGui.QTextCharFormat()
        format.setForeground(QtCore.Qt.blue)
        format.setBackground(QtCore.Qt.lightGray)
        import datetime

        for d in self.dates:
            dt = datetime.datetime.strptime(
                d, "%Y-%m-%d"
            )  # datetime.datetime.strptime(str(_now), "%Y-%m-%d %H:%M:%S.%f")
            print(dt)
            self.cal.setDateTextFormat(dt.date(), format)

    def goto(self):
        i = self.lst.selectedItems()
        if (i):
            item = i[0]
            import datetime
            dt = datetime.datetime.strptime(item.text().split(" ")[0],
                                            "%Y-%m-%d")
            self.cal.setSelectedDate(dt.date())

    def doExport(self):
        i = self.lst.selectedItems()
        for x in i:
            txt = x.text()
            d, t, n = txt.split(" ")

            # mk query for n

            fname = QFileDialog.getSaveFileName(
                self, 'Savefile', './',
                "raw json(*.json);; exel tables(*.csv)")

            self.glob.socket.send_json(
                dict(action='getdata', name=n, limit=1000))
            res = self.glob.socket.recv_json()

            if ('.csv' == fname[0][-4:]):
                print(res[0])
                f = open(fname[0], "w")
                for i, t in enumerate(res[0][0]):
                    f.write('time {0};'.format(i))
                f.write("\n")
                for r in res:
                    for r2 in r[0]:
                        f.write('{0};'.format(r2))
                    try:
                        if isinstance(r[1], list):
                            for r2 in r[1]:
                                f.write('{0};'.format(str(r2)))
                        else:
                            f.write(str(r[1]))

                    except:
                        f.write(str(r[1]))
                    f.write("\n")

            else:

                f = open(fname[0], "w")
                f.write(json.dumps(res))
                f.close()

    def __init__(self, main, parent=None):
        super(SelectSession, self).__init__(parent)
        self.glob = main

        mainLayout = QVBoxLayout()

        self.cal = QCalendarWidget()
        self.export = QPushButton('CSV export')
        self.cal.setFirstDayOfWeek(QtCore.Qt.Monday)
        self.lst = QListWidget()
        self.lst.clicked.connect(self.goto)

        mainLayout.addWidget(self.cal)
        mainLayout.addWidget(self.lst)

        mainLayout.addWidget(self.export)

        self.export.clicked.connect(self.doExport)
        mainLayout.addStretch(2)

        self.setLayout(mainLayout)
コード例 #12
0
ファイル: db-view.py プロジェクト: ASMfreaK/sensorika-robot
class SelectSession(QWidget):
    def update(self):

        self.glob.socket.send_json(dict(action='listsessions'))
        res = self.glob.socket.recv_json()
        print(res,"asd")
        self.dates = set()

        self.lst.insertItems(0, [d + " " + name for d, name in res])
        for d, n in res:
            self.dates.add(d.split(' ')[0])

        format = QtGui.QTextCharFormat()
        format.setForeground(QtCore.Qt.blue)
        format.setBackground(QtCore.Qt.lightGray)
        import datetime

        for d in self.dates:
            dt = datetime.datetime.strptime(d,
                                            "%Y-%m-%d")  # datetime.datetime.strptime(str(_now), "%Y-%m-%d %H:%M:%S.%f")
            print(dt)
            self.cal.setDateTextFormat(dt.date(), format)

    def goto(self):
        i = self.lst.selectedItems()
        if (i):
            item = i[0]
            import datetime
            dt = datetime.datetime.strptime(item.text().split(" ")[0], "%Y-%m-%d")
            self.cal.setSelectedDate(dt.date())

    def doExport(self):
        i = self.lst.selectedItems()
        for x in i:
            txt = x.text()
            d, t, n = txt.split(" ")

            # mk query for n


            fname = QFileDialog.getSaveFileName(self, 'Savefile', './', "raw json(*.json);; exel tables(*.csv)")

            self.glob.socket.send_json(dict(action='getdata', name=n, limit=1000))
            res = self.glob.socket.recv_json()
            print(res)
            if ('.csv' == fname[0][-4:]):
                #print(res[0])
                f = open(fname[0], "w")
                for i, t in enumerate(res[0][0]):
                    f.write('time {0};'.format(i))
                f.write("\n")
                for r in res:
                    for r2 in r[0]:
                        f.write('{0};'.format(r2))
                    try:
                        if isinstance(r[1], list):
                            for r2 in r[1]:
                                f.write('{0};'.format(str(r2)))
                        else:
                            f.write(str(r[1]))

                    except:
                        f.write(str(r[1]))
                    f.write("\n")
            else:
                f = open(fname[0], "w")
                f.write(json.dumps(res))
                f.close()

    def __init__(self, main, parent=None):
        super(SelectSession, self).__init__(parent)
        self.glob = main

        mainLayout = QVBoxLayout()

        self.cal = QCalendarWidget()
        self.export = QPushButton('CSV export')
        self.cal.setFirstDayOfWeek(QtCore.Qt.Monday)
        self.lst = QListWidget()
        self.lst.clicked.connect(self.goto)

        mainLayout.addWidget(self.cal)
        mainLayout.addWidget(self.lst)

        mainLayout.addWidget(self.export)

        self.export.clicked.connect(self.doExport)
        mainLayout.addStretch(2)
        self.setLayout(mainLayout)
コード例 #13
0
class DateSelector(QGroupBox):
    def __init__(self, parent):
        super().__init__(parent)
        self.parent = parent
        self.setObjectName('dates_selector')
        self.setTitle('Dates range')
        self.setAlignment(Qt.AlignHCenter)

        self.layout = QHBoxLayout(self)
        self.layout.setSpacing(3)
        self.layout.setContentsMargins(5, 5, 5, 5)

        # Setup 'From' selector
        from_frame = QFrame(self, Qt.Widget)
        from_layout = QVBoxLayout(from_frame)

        self.from_lbl = QLabel(from_frame)
        self.from_lbl.setText('Select From date')
        self.from_lbl.setStyleSheet('font: bold')

        self.from_cal = QCalendarWidget(from_frame)
        self.from_cal.setGridVisible(True)
        self.from_cal.setFirstDayOfWeek(Qt.DayOfWeek(1))
        self.from_cal.setMaximumDate(QDate().currentDate())
        self.from_cal.clicked.connect(self.update_calendars)
        self.from_cal.clicked.connect(get_main_window().update_start_button)

        from_layout.addWidget(self.from_lbl, 0, Qt.AlignHCenter)
        from_layout.addWidget(self.from_cal, 0, Qt.AlignHCenter)

        # Setup 'To' selector
        to_frame = QFrame(self, Qt.Widget)
        to_layout = QVBoxLayout(to_frame)

        self.to_lbl = QLabel(to_frame)
        self.to_lbl.setText('Select To date')
        self.to_lbl.setStyleSheet('font: bold')

        self.to_cal = QCalendarWidget(to_frame)
        self.to_cal.setGridVisible(True)
        self.to_cal.setFirstDayOfWeek(Qt.DayOfWeek(1))
        self.to_cal.setMaximumDate(QDate().currentDate())
        self.to_cal.clicked.connect(self.update_calendars)
        self.to_cal.clicked.connect(get_main_window().update_start_button)
        self.to_cal.setDisabled(True)

        to_layout.addWidget(self.to_lbl, 0, Qt.AlignHCenter)
        to_layout.addWidget(self.to_cal, 0, Qt.AlignHCenter)

        self.layout.addWidget(from_frame, 0, Qt.AlignCenter)
        self.layout.addWidget(to_frame, 0, Qt.AlignCenter)

        self.update_calendars()

    def update_calendars(self):
        if self.from_cal.selectedDate():
            self.to_cal.setEnabled(True)
            self.from_cal.setMaximumDate(QDate().currentDate())
            self.to_cal.setMinimumDate(self.from_cal.selectedDate())
            self.to_cal.setMaximumDate(QDate().currentDate())
            self.from_lbl.setText(self.from_cal.selectedDate().toString(
                Qt.ISODate))

        if self.to_cal.selectedDate():
            self.to_lbl.setText(self.to_cal.selectedDate().toString(
                Qt.ISODate))