Пример #1
0
    def get_calendar_widget(self):
        calendar = QCalendarWidget()
        calendar.setEnabled(True)
        calendar.setFirstDayOfWeek(Qt.Monday)
        calendar.setDateEditEnabled(True)

        return calendar
Пример #2
0
class CalendarDialog(QDialog):
    def __init__(self, *arg, **kwargs):
        super().__init__(*arg, **kwargs)
        self.setWindowTitle("Выберите дату")
        vbox = QVBoxLayout(self)
        self.calendar = QCalendarWidget()
        self.calendar.setGridVisible(True)
        self.calendar.setDateEditEnabled(False)
        button_save = QPushButton("Ок")
        button_save.clicked.connect(self.accept)
        vbox.addWidget(self.calendar)
        hbox = QHBoxLayout()
        hbox.addStretch(1)
        hbox.addWidget(button_save)
        vbox.addLayout(hbox)

    def get_date(self):
        date = self.calendar.selectedDate().toString(Qt.ISODate)
        date = datetime.strptime(date, "%Y-%m-%d").date()
        return date

    def set_date(self, date):
        self.calendar.setSelectedDate(date)
Пример #3
0
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))
Пример #4
0
class DateInputW(QFrame):
    def __init__(self, parent):
        super(DateInputW, self).__init__()
        
        self.layout = QGridLayout()
        self.parent = parent
        
        self.title1 = QLabel(u'Начало:', self)
        self.title1.move(5, 5)
        self.cal1 = QCalendarWidget()
        self.cal1.setGridVisible(True)
        self.cal1.setDateEditEnabled(True)

        self.cal1.clicked.connect(self.setDateStart)
        self.cal1.setFixedSize(200, 160)
        ymd1 = [parent.day_start.year, parent.day_start.month, parent.day_start.day]
        qdate1 = QDate()
        qdate1.setDate(ymd1[0], ymd1[1], ymd1[2])
        self.cal1.setSelectedDate(qdate1)
        
        self.lbl1 = QLabel(self)
        self.lbl1.setText(parent.day_start.strftime('%d/%m/%Y'))
        self.lbl1.move(5, 25)
        
        self.title2 = QLabel(u'Конец:', self)
        self.title2.move(325, 5)
        self.cal2 = QCalendarWidget()
        self.cal2.setGridVisible(True)
        self.cal2.setDateEditEnabled(True)

        self.cal2.clicked.connect(self.setDateEnd)
        self.cal2.setFixedSize(200, 160)
        ymd2 = [parent.day_end.year, parent.day_end.month, parent.day_end.day]
        qdate2 = QDate()
        qdate2.setDate(ymd2[0], ymd2[1], ymd2[2])
        self.cal2.setSelectedDate(qdate2)
        
        self.lbl2 = QLabel(self)
        self.lbl2.setText(parent.day_end.strftime('%d/%m/%Y'))
        self.lbl2.move(325, 25)
        
        self.layout.addWidget(self.cal1, 1, 0)
        self.layout.addWidget(self.cal2, 1, 1)
        
        self.setAutoFillBackground(True)
        palette = self.palette()
        palette.setColor(self.backgroundRole(), QColor('white'))
        self.setPalette(palette)
        
        self.setFrameShape(_frameShape)
        self.setFrameShadow(_frameShadow)
        self.setLineWidth(_lineWidth)
        self.setMidLineWidth(_midLineWidth)
        
        #change NavBar background color
        child = self.cal1.children()[3]
        palette = child.palette()
        palette.setColor(child.backgroundRole(), QColor('silver'))
        child.setPalette(palette)
        
        child = self.cal2.children()[3]
        palette = child.palette()
        palette.setColor(child.backgroundRole(), QColor('silver'))
        child.setPalette(palette)
        
        # change cell color
        brush = self.cal1.paintCell
        
        
        #self.cal1.setWeekdayTextFormat(headerForm)
        
       #parent.layout.addLayout(self.layout, 1, 0, 1, 2)

        

        
    def setDateStart(self):
        date = self.cal1.selectedDate()
        date = date.toPyDate()
        self.parent.day_start = datetime.datetime(date.year, date.month, date.day)
        self.lbl1.setText(self.parent.day_start.strftime('%d/%m/%Y'))
        
        minDate_dt = self.parent.day_start + datetime.timedelta(days=1)
        minDate = QDate()
        minDate.setDate(minDate_dt.year, minDate_dt.month, minDate_dt.day)
        self.cal2.setMinimumDate(minDate)

    def setDateEnd(self):
        date = self.cal2.selectedDate()
        date = date.toPyDate()
        self.parent.day_end = datetime.datetime(date.year, date.month, date.day)
        self.lbl2.setText(self.parent.day_end.strftime('%d/%m/%Y'))
        
        maxDate_dt = self.parent.day_end - datetime.timedelta(days=1)
        maxDate = QDate()
        maxDate.setDate(maxDate_dt.year, maxDate_dt.month, maxDate_dt.day)
        self.cal1.setMaximumDate(maxDate)
Пример #5
0
class ui_excute(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(511, 475)
        self.centralwidget = QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.envComboBox = QComboBox(self.centralwidget)
        self.envComboBox.setGeometry(QtCore.QRect(160, 30, 111, 21))
        self.envComboBox.setObjectName("envComboBox")
        self.typeComboBox = QComboBox(self.centralwidget)
        self.typeComboBox.setGeometry(QtCore.QRect(160, 80, 111, 21))
        self.typeComboBox.setObjectName("typeComboBox")
        self.label = QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(40, 30, 91, 16))
        self.label.setObjectName("label")
        self.label_2 = QLabel(self.centralwidget)
        self.label_2.setGeometry(QtCore.QRect(40, 80, 91, 16))
        self.label_2.setObjectName("label_2")
        self.label_3 = QLabel(self.centralwidget)
        self.label_3.setGeometry(QtCore.QRect(40, 130, 91, 16))
        self.label_3.setObjectName("label_3")
        self.pushButton = QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(410, 365, 81, 41))
        self.pushButton.setObjectName("pushButton")
        self.pushButton_1 = QPushButton(self.centralwidget)
        self.pushButton_1.setGeometry(QtCore.QRect(30, 365, 81, 41))
        self.pushButton_1.setObjectName("checkPushButton")
        self.textBrowser = QTextBrowser(self.centralwidget)
        self.textBrowser.setGeometry(QtCore.QRect(160, 350, 240, 90))
        self.textBrowser.setObjectName("textBrowser")
        self.calendarWidget = QCalendarWidget(self.centralwidget)
        self.calendarWidget.setGeometry(QtCore.QRect(160, 130, 271, 200))
        self.calendarWidget.setGridVisible(True)
        self.calendarWidget.setHorizontalHeaderFormat(
            QCalendarWidget.ShortDayNames)
        self.calendarWidget.setVerticalHeaderFormat(
            QCalendarWidget.NoVerticalHeader)
        self.calendarWidget.setNavigationBarVisible(True)
        self.calendarWidget.setDateEditEnabled(True)
        self.calendarWidget.setObjectName("calendarWidget")
        MainWindow.setCentralWidget(self.centralwidget)
        self.statusbar = QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

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

        for i in list_env:
            self.envComboBox.insertItem(list_env.index(i), i)
        for i in list_job_type:
            self.typeComboBox.insertItem(list_job_type.index(i), i)

        self.pushButton.clicked.connect(self.excutejob)
        self.pushButton_1.clicked.connect(self.checkScanJob)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "定时任务执行工具"))
        self.label.setText(_translate("MainWindow", "定时任务环境:"))
        self.label_2.setText(_translate("MainWindow", "定时任务类型:"))
        self.label_3.setText(_translate("MainWindow", "定时任务日期:"))
        self.pushButton.setText(_translate("MainWindow", "执行"))
        self.pushButton_1.setText(_translate("MainWindow", "服务扫描检查"))

    def checkScanJob(self):
        table = dic_env[self.envComboBox.currentText()]['tablename']
        last_create_time = lastCreatTime(table)
        if ('beginTime' in globals()):
            if last_create_time > beginTime:
                QTextBrowser.append(self.textBrowser, "服务扫描任务已经执行完毕!")
            else:
                QTextBrowser.append(self.textBrowser, "服务扫描任务仍在执行,请稍后再检查!")
        else:
            QTextBrowser.append(self.textBrowser, "请先执行服务扫描任务")

    def excutejob(self):
        #获取参数
        job_env = self.envComboBox.currentText()
        job_type = dic_job_type[self.typeComboBox.currentText()]
        job_name = self.typeComboBox.currentText()
        date = self.calendarWidget.selectedDate()
        job_date = date.toString(Qt.ISODate)
        ip = dic_env[job_env]['ip']
        username = dic_env[job_env]['username']
        password = dic_env[job_env]['password']

        # 连接SSH
        try:
            ssh = paramiko.SSHClient()
            key = paramiko.AutoAddPolicy()
            ssh.set_missing_host_key_policy(key)
            ssh.connect(ip, 22, username, password, timeout=5)

            # 执行Job命令
            job_command = 'export app_name="cs-expertsystem-job";app_job="cs-expertsystem-job-crontab";port=' + str(
                port
            ) + ';parameter=' + job_type + ';parameter2=' + job_date + ';PATH=/usr/java/jdk1.8.0_73/bin:$PATH;JAVA_HOME=/usr/java/jdk1.8.0_73;mkdir -p /yazuo_apps/logs/$app_name/;chmod a+x /yazuo_apps/$app_name/current/$app_name.jar;java -server -Xms512m -Xmx512m -XX:MaxPermSize=128m -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintClassHistogram -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime  -Xloggc:/yazuo_apps/logs/$app_name/gc_log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=100 -XX:GCLogFileSize=10240K -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/yazuo_apps/logs/$app_name/heap_dump.hprof -Dfile.encoding=UTF-8  -Dapp_home=/yazuo_apps/$app_name/current -jar /yazuo_apps/$app_name/current/$app_name.jar $parameter $parameter2 --server.port=$port  --spring.application.name=$app_name --logging.path=/yazuo_apps/logs/$app_name/ --logging.file=/yazuo_apps/logs/$app_name/info.log --task.name=$app_job --server.tomcat.accesslog.suffix=.log >/yazuo_apps/logs/$app_name/console.log 2>&1'
            stdin, stdout, stderr = ssh.exec_command(job_command)
            ssh.close()
            msg = job_name + '(' + job_date + ") 定时任务发送完毕!"
            QTextBrowser.setText(self.textBrowser, msg)
        except:
            QTextBrowser.setText(self.textBrowser, "执行失败!")

        # 获取日志文件
        t = paramiko.Transport((ip, 22))
        t.connect(username=username, password=password)
        sftp = paramiko.SFTPClient.from_transport(t)
        beginString = job_type + '任务开始时间'
        cmpleteString = job_type + '执行完毕时间'
        time.sleep(1)
        try:
            state = 0
            time.sleep(5)
            for i in range(1, 120):
                time.sleep(5)
                sftp.get('/yazuo_apps/logs/cs-expertsystem-job/console.log',
                         os.getcwd() + '/\\console.log')
                log_content = open('console.log', 'r', encoding='UTF-8')
                log_string = log_content.read()
                log_content.close()
                if state == 0:
                    if beginString in log_string:
                        state = 1
                        if job_type == 'ScanBizOpportunityJob':
                            break
                if state == 1:
                    if cmpleteString in log_string:
                        state = 2
                        break
            if state == 0:
                QTextBrowser.append(self.textBrowser, "未检测到任务开始执行")
            if state == 1 and job_type == 'ScanBizOpportunityJob':
                mat = re.search(beginString + r'.{21}', log_string)
                global beginTime
                beginTime = datetime.datetime.strptime(
                    mat.group(0)[-19:], '%Y-%m-%d %H:%M:%S')
                print(beginTime)
                QTextBrowser.append(self.textBrowser, "请点击 服务扫描查询 按钮来检查是否执行完毕")
            if state == 1 and job_type != 'ScanBizOpportunityJob':
                mat = re.search(beginString + r'.{21}', log_string)
                QTextBrowser.append(
                    self.textBrowser,
                    job_type + mat.group(0)[-27:] + " 但未检测到执行结束")
            if state == 2:
                mat = re.search(beginString + r'.{21}', log_string)
                mat1 = re.search(cmpleteString + r'.{21}', log_string)
                QTextBrowser.append(self.textBrowser,
                                    job_name + mat.group(0)[-27:])
                QTextBrowser.append(self.textBrowser,
                                    job_name + mat1.group(0)[-27:])
        except:
            QTextBrowser.append(self.textBrowser, "获取日志失败,可能未执行成功")