def _handleDate(self, name, parameterType, tooltip, defaultVal, minVal=None, maxVal=None): if (minVal is not None): minDate = QDate.fromString(minVal, 'yyyy-MM-dd') if (maxVal is not None): maxDate = QDate.fromString(maxVal, 'yyyy-MM-dd') defaultDate = QDate.fromString(defaultVal.strftime('%Y-%m-%d'), 'yyyy-MM-dd') widget = QDateEdit(self.parameterTable) widget.setDate(defaultDate) widget.setToolTip(tooltip) widget.setCalendarPopup(True) self.parameters[name] = [parameterType, widget] if (minVal is not None and maxVal is not None): self.parameters[name][1].setDateRange(minDate, maxDate)
class TableWidget(QWidget): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.resize(700, 72) self.setMinimumWidth(700) # Widgets self.lesson = QLineEdit(self) self.lesson.setReadOnly(True) self.lesson.setToolTip('Описание предмета') self.deadline = QDateEdit(self) self.deadline.setToolTip('Дата окончания') self.deadline.setReadOnly(True) self.deadline.setDate(date.today()) self.deadline.setMinimumDate(date(2017, 9, 1)) self.save_button = QPushButton('Сохранить', self) self.delete_button = QPushButton('Удалить', self) self.result = QDoubleSpinBox(self) self.result.setSingleStep(0.01) self.result.setToolTip('Результат') self.done = QCheckBox(self) self.done.setToolTip('Задача выполнена') # Layouts grid_layout = QGridLayout(self) grid_layout.addWidget(self.lesson, 0, 1) grid_layout.addWidget(self.deadline, 0, 3) buttons_layout = QVBoxLayout() buttons_layout.addWidget(self.save_button) buttons_layout.addWidget(self.delete_button) grid_layout.addLayout(buttons_layout, 0, 5) grid_layout.addWidget(self.result, 0, 4) grid_layout.addWidget(self.done, 0, 0) # Tab order self.setTabOrder(self.done, self.lesson) self.setTabOrder(self.lesson, self.deadline) self.setTabOrder(self.deadline, self.result) self.setTabOrder(self.result, self.save_button) self.setTabOrder(self.save_button, self.delete_button)
class DateCreatorWindow(QDialog): """ Dialog window for creation / editing date. """ def __init__(self, parent: QWidget = None): super().__init__(parent) self._date = None self._date_delta = 7 self._date_start_temp = QDate.currentDate() # window settings self.setWindowTitle(self.tr("Date creator")) # toggle and status self.check_box = QCheckBox(self.tr("Range date")) # date layout self.layout_date_edit = QFormLayout() # simple date layout self.label_simple_date = QLabel(self.tr("Date")) self.layout_date_edit.setWidget(0, QFormLayout.LabelRole, self.label_simple_date) self.date_edit_simple = QDateEdit() self.layout_date_edit.setWidget(0, QFormLayout.FieldRole, self.date_edit_simple) self.date_edit_simple.setCalendarPopup(True) self.date_edit_simple.setDisplayFormat("dd.MM.yyyy") self.date_edit_simple.setDate(QDate.currentDate()) self.date_edit_simple.setDateRange(QDate.currentDate().addDays(-365), QDate.currentDate().addDays(365)) # range date layout self.label_date_start = QLabel(self.tr("Start")) self.layout_date_edit.setWidget(1, QFormLayout.LabelRole, self.label_date_start) self.date_edit_start = QDateEdit() self.layout_date_edit.setWidget(1, QFormLayout.FieldRole, self.date_edit_start) self.label_date_end = QLabel(self.tr("End")) self.layout_date_edit.setWidget(2, QFormLayout.LabelRole, self.label_date_end) self.date_edit_end = QDateEdit() self.layout_date_edit.setWidget(2, QFormLayout.FieldRole, self.date_edit_end) self.label_date_frequency = QLabel(self.tr("Frequency")) self.layout_date_edit.setWidget(3, QFormLayout.LabelRole, self.label_date_frequency) self.combo_box_frequency = QComboBox() self.layout_date_edit.setWidget(3, QFormLayout.FieldRole, self.combo_box_frequency) self.date_edit_start.setCalendarPopup(True) self.date_edit_start.setDisplayFormat("dd.MM.yyyy") self.date_edit_start.setDate(QDate.currentDate()) self.date_edit_start.setDateRange(QDate.currentDate().addDays(-365), QDate.currentDate().addDays(365)) self.date_edit_end.setCalendarPopup(True) self.date_edit_end.setDisplayFormat("dd.MM.yyyy") self.date_edit_end.setDate(QDate.currentDate().addDays( self._date_delta)) self.date_edit_end.setDateRange( QDate.currentDate().addDays(self._date_delta), QDate.currentDate().addDays(365)) self.combo_box_frequency.addItem(str(FrequencyDate.Every), FrequencyDate.Every) self.combo_box_frequency.addItem(str(FrequencyDate.Throughout), FrequencyDate.Throughout) # navigate self.layout_navigate = QHBoxLayout() self.layout_navigate.addStretch(1) self.push_button_ok = QPushButton(self.tr("OK")) self.layout_navigate.addWidget(self.push_button_ok) self.push_button_apply = QPushButton(self.tr("Apply")) self.layout_navigate.addWidget(self.push_button_apply) self.push_button_cancel = QPushButton(self.tr("Cancel")) self.layout_navigate.addWidget(self.push_button_cancel) # layout setup self.layout_main = QVBoxLayout() self.layout_main.setAlignment(Qt.AlignCenter) self.layout_main.addWidget(self.check_box) self.layout_main.addLayout(self.layout_date_edit) self.layout_main.addStretch(1) self.layout_main.addLayout(self.layout_navigate) self.setLayout(self.layout_main) # connection self.check_box.clicked.connect(self.check_box_clicked) self.date_edit_start.dateChanged.connect(self.date_edit_start_change) self.date_edit_end.dateChanged.connect(self.date_range_validation) self.combo_box_frequency.currentIndexChanged.connect( self.combo_box_frequency_changed) self.push_button_ok.clicked.connect(self.push_button_ok_clicked) self.push_button_apply.clicked.connect(self.push_button_apply_clicked) self.push_button_cancel.clicked.connect( self.push_button_cancel_clicked) self.show_simple_date() def set_date(self, date_item) -> None: """ Sets the date for editing. :param date_item: Set date """ if isinstance(date_item, DateItem): self.show_simple_date() self.date_edit_simple.setDate( QDate.fromString(date_item.date, "yyyy.MM.dd")) self._date = date_item if isinstance(date_item, DateRange): self.check_box.setChecked(True) self.show_range_date() self.date_edit_start.setDate( QDate.fromString(date_item.date_from, "yyyy.MM.dd")) self.date_edit_end.setDate( QDate.fromString(date_item.date_to, "yyyy.MM.dd")) self.combo_box_frequency.setCurrentText(str(date_item.frequency)) self._date = date_item def get_date(self) -> (DateItem, DateRange, None): """ Returns the created date. """ return self._date def show_simple_date(self) -> None: """ Switches the window to simple date editing mode. """ self.label_simple_date.setVisible(True) self.date_edit_simple.setVisible(True) self.label_date_start.setVisible(False) self.date_edit_start.setVisible(False) self.label_date_end.setVisible(False) self.date_edit_end.setVisible(False) self.label_date_frequency.setVisible(False) self.combo_box_frequency.setVisible(False) def show_range_date(self) -> None: """ Switches the window to range date editing mode. """ self.label_date_start.setVisible(True) self.date_edit_start.setVisible(True) self.label_date_end.setVisible(True) self.date_edit_end.setVisible(True) self.label_date_frequency.setVisible(True) self.combo_box_frequency.setVisible(True) self.label_simple_date.setVisible(False) self.date_edit_simple.setVisible(False) def date_edit_start_change(self, date: QDate) -> None: """ Slot for changing the end of a range of dates. :param date: Start of the date range """ end_date = self.date_edit_end.date().addDays( self._date_start_temp.daysTo(date)) self.date_edit_end.setDateRange(date.addDays(self._date_delta), date.addDays(365)) self.date_edit_end.setDate(end_date) self._date_start_temp = QDate(date) def combo_box_frequency_changed(self, index: int) -> None: """ Slot for frequency combo box. :param index: Current index """ if index == 0: self._date_delta = 7 else: self._date_delta = 14 self.date_edit_end.setDateRange( self.date_edit_start.date().addDays(self._date_delta), self.date_edit_start.date().addDays(365)) self.date_range_validation() def date_range_validation(self) -> None: """ Checks the correctness of the entered dates. """ if self.date_edit_start.date().dayOfWeek() == self.date_edit_end.date( ).dayOfWeek(): if self.date_edit_start.date().daysTo( self.date_edit_end.date()) % self._date_delta == 0: msg = "" else: msg = self.tr("The number of days between " "dates is not a multiple of {}").format( self._date_delta) else: msg = self.tr("Different days of the week at dates") if msg == "": self.push_button_ok.setEnabled(True) self.push_button_apply.setEnabled(True) else: self.push_button_ok.setEnabled(False) self.push_button_apply.setEnabled(False) self.date_edit_start.setToolTip(msg) self.date_edit_end.setToolTip(msg) def check_box_clicked(self, value: bool) -> None: """ Slot for check box. :param value: Check box status """ if value is False: # simple date self.show_simple_date() else: # range date self.show_range_date() def push_button_ok_clicked(self) -> None: """ Slot for ok button. """ if self.push_button_apply_clicked(): self.close() def push_button_apply_clicked(self) -> bool: """ Slot for apply button. """ try: if self.check_box.isChecked() is False: # simple date self._date = DateItem( self.date_edit_simple.date().toString("yyyy.MM.dd")) else: # range date self._date = DateRange( self.date_edit_start.date().toString("yyyy.MM.dd"), self.date_edit_end.date().toString("yyyy.MM.dd"), self.combo_box_frequency.currentData(Qt.UserRole)) return True except InvalidDatePair as pair_ex: QMessageBox.warning(self, self.tr("Date error"), str(pair_ex)) except Exception as ex: QMessageBox.critical(self, self.tr("Unknown error"), str(ex)) return False def push_button_cancel_clicked(self) -> None: """ Slot for cancel button. """ self._date = None self.close()
class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(1920, 1080) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.gridLayout_3 = QtWidgets.QGridLayout(self.centralwidget) self.gridLayout_3.setObjectName("gridLayout_3") self.Tab1 = QtWidgets.QTabWidget(self.centralwidget) self.Tab1.setLocale( QtCore.QLocale(QtCore.QLocale.Russian, QtCore.QLocale.Russia)) self.Tab1.setObjectName("Tab1") self.tab = QtWidgets.QWidget() self.tab.setObjectName("tab") self.gridLayout = QtWidgets.QGridLayout(self.tab) self.gridLayout.setObjectName("gridLayout") self.groupBoxButtons = QGroupBox(self.tab) self.groupBoxButtons.setObjectName(u"groupBoxButtons") self.groupBoxButtons.setMaximumSize(QSize(100, 16777215)) self.formLayout = QFormLayout(self.groupBoxButtons) self.gridLayout.addWidget(self.groupBoxButtons, 0, 1, 6, 1) self.ButtonAddLeg = QtWidgets.QPushButton(self.groupBoxButtons) self.ButtonAddLeg.setObjectName("ButtonAddLeg") self.formLayout.setWidget(2, QFormLayout.LabelRole, self.ButtonAddLeg) self.pushButtonDelLeg = QtWidgets.QPushButton(self.groupBoxButtons) self.pushButtonDelLeg.setObjectName(u"pushButtonDelLeg") self.pushButtonDelLeg.setText(u"Del Leg") self.formLayout.setWidget(3, QFormLayout.LabelRole, self.pushButtonDelLeg) self.calendarWidget = QtWidgets.QCalendarWidget(self.tab) self.calendarWidget.setObjectName("calendarWidget") self.gridLayout.addWidget(self.calendarWidget, 0, 0, 6, 1, QtCore.Qt.AlignLeft) self.calendarWidget.setGridVisible(True) self.ButtonAddAC = QtWidgets.QPushButton(self.groupBoxButtons) self.ButtonAddAC.setObjectName("ButtonAddAC") self.formLayout.setWidget(0, QFormLayout.LabelRole, self.ButtonAddAC) self.pushButtonDelAC = QtWidgets.QPushButton(self.groupBoxButtons) self.pushButtonDelAC.setObjectName("pushButtonDelAC") self.pushButtonDelAC.setText(u"Del A/C") self.formLayout.setWidget(1, QFormLayout.LabelRole, self.pushButtonDelAC) self.tableViewAcft = QtWidgets.QTableView(self.tab) self.tableViewAcft.setObjectName(u"tableViewAcft") self.gridLayout.addWidget(self.tableViewAcft, 0, 2, 6, 1, QtCore.Qt.AlignLeft) self.tableViewAcft.setSelectionBehavior( QtWidgets.QAbstractItemView.SelectRows) self.tableViewAcft.horizontalHeader().setStretchLastSection(False) self.tableViewAcft.setMaximumSize(QSize(140, 16777215)) self.model = QtGui.QStandardItemModel(self.tab) self.tableLog = QtWidgets.QTableView(self.tab) self.tableLog.setModel(self.model) self.tableLog.setObjectName("tableLog") self.gridLayout.addWidget(self.tableLog, 6, 0, 1, 6) self.tableLog.setSelectionBehavior( QtWidgets.QAbstractItemView.SelectRows) self.tableLog.horizontalHeader().setStretchLastSection(False) self.tableLog.setSortingEnabled(True) self.tableLog.setAlternatingRowColors(True) self.Tab1.addTab(self.tab, "") self.tab_2 = QtWidgets.QWidget() self.tab_2.setObjectName("tab_2") self.Tab1.addTab(self.tab_2, "") self.gridLayout_3.addWidget(self.Tab1, 0, 0, 1, 1) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 1920, 30)) self.menubar.setObjectName("menubar") MainWindow.setMenuBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) self.lcdNumber = QtWidgets.QLCDNumber(self.tab) self.lcdNumber.setObjectName(u"lcdNumber") self.lcdNumber.setMinimumSize(QtCore.QSize(300, 0)) self.lcdNumber.setDigitCount(8) self.gridLayout.addWidget(self.lcdNumber, 2, 5, 2, 1, QtCore.Qt.AlignLeft) self.lcdNumberBLK = QtWidgets.QLCDNumber(self.tab) self.lcdNumberBLK.setObjectName(u"lcdNumberBLK") self.lcdNumberBLK.setMinimumSize(QtCore.QSize(300, 0)) self.lcdNumberBLK.setDigitCount(8) self.gridLayout.addWidget(self.lcdNumberBLK, 0, 5, 2, 1, QtCore.Qt.AlignLeft) self.lcdNumberNight = QtWidgets.QLCDNumber(self.tab) self.lcdNumberNight.setObjectName(u"lcdNumberNight") self.lcdNumberNight.setMinimumSize(QtCore.QSize(300, 0)) self.lcdNumberNight.setDigitCount(8) self.gridLayout.addWidget(self.lcdNumberNight, 4, 5, 2, 1, QtCore.Qt.AlignLeft) self.label_3 = QtWidgets.QLabel(self.tab) self.label_3.setObjectName(u"label_3") self.label_3.setEnabled(True) font = QtGui.QFont() font.setPointSize(30) font.setBold(True) font.setWeight(75) self.label_3.setFont(font) self.label_3.setText( u"<html><head/><body><p>Night Time </p></body></html>") self.label_3.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) self.gridLayout.addWidget(self.label_3, 4, 4, 2, 1, QtCore.Qt.AlignLeft) self.label_2 = QtWidgets.QLabel(self.tab) self.label_2.setObjectName(u"label_2") self.label_2.setFont(font) self.label_2.setText( u"<html><head/><body><p>Flight Time </p></body></html>") self.label_2.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) self.gridLayout.addWidget(self.label_2, 2, 4, 2, 1, QtCore.Qt.AlignLeft) self.label = QtWidgets.QLabel(self.tab) self.label.setObjectName(u"label") self.label.setFont(font) self.label.setText( u"<html><head/><body><p>Block Time </p></body></html>") self.label.setTextFormat(QtCore.Qt.AutoText) self.label.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) self.gridLayout.addWidget(self.label, 0, 4, 2, 1, QtCore.Qt.AlignLeft) self.groupBoxFilters = QGroupBox(self.tab) self.groupBoxFilters.setObjectName(u"groupBoxFilters") self.groupBoxFilters.setToolTip(u"") self.groupBoxFilters.setStatusTip(u"") self.groupBoxFilters.setWhatsThis(u"") self.groupBoxFilters.setAccessibleName(u"") self.groupBoxFilters.setAccessibleDescription(u"") self.groupBoxFilters.setTitle(u"Filters") self.gridLayout_2 = QGridLayout(self.groupBoxFilters) self.gridLayout_2.setObjectName(u"gridLayout_2") self.gridLayout.addWidget(self.groupBoxFilters, 0, 3, 6, 1, QtCore.Qt.AlignLeft) self.radioButton12Month = QRadioButton(self.groupBoxFilters) self.buttonGroupFilter = QButtonGroup(MainWindow) self.buttonGroupFilter.setObjectName(u"buttonGroupFilter") self.buttonGroupFilter.addButton(self.radioButton12Month) self.radioButton12Month.setObjectName(u"radioButton12Month") self.radioButton12Month.setToolTip(u"") self.radioButton12Month.setStatusTip(u"") self.radioButton12Month.setWhatsThis(u"") self.radioButton12Month.setAccessibleName(u"") self.radioButton12Month.setAccessibleDescription(u"") self.radioButton12Month.setText(u"Last 12 Month") self.gridLayout_2.addWidget(self.radioButton12Month, 2, 1, 1, 1) self.radioButtonDateToDate = QRadioButton(self.groupBoxFilters) self.buttonGroupFilter.addButton(self.radioButtonDateToDate) self.radioButtonDateToDate.setObjectName(u"radioButtonDateToDate") self.radioButtonDateToDate.setToolTip(u"") self.radioButtonDateToDate.setStatusTip(u"") self.radioButtonDateToDate.setWhatsThis(u"") self.radioButtonDateToDate.setAccessibleName(u"") self.radioButtonDateToDate.setAccessibleDescription(u"") self.radioButtonDateToDate.setText(u"From Date To Date") self.gridLayout_2.addWidget(self.radioButtonDateToDate, 4, 1, 1, 1) self.radioButtonPrDay = QRadioButton(self.groupBoxFilters) self.buttonGroupFilter.addButton(self.radioButtonPrDay) self.radioButtonPrDay.setObjectName(u"radioButtonPrDay") self.radioButtonPrDay.setToolTip(u"") self.radioButtonPrDay.setStatusTip(u"") self.radioButtonPrDay.setWhatsThis(u"") self.radioButtonPrDay.setAccessibleName(u"") self.radioButtonPrDay.setAccessibleDescription(u"") self.radioButtonPrDay.setText(u"Previous Day") self.gridLayout_2.addWidget(self.radioButtonPrDay, 0, 0, 1, 1) self.radioButton30days = QRadioButton(self.groupBoxFilters) self.buttonGroupFilter.addButton(self.radioButton30days) self.radioButton30days.setObjectName(u"radioButton30days") self.radioButton30days.setToolTip(u"") self.radioButton30days.setStatusTip(u"") self.radioButton30days.setWhatsThis(u"") self.radioButton30days.setAccessibleName(u"") self.radioButton30days.setAccessibleDescription(u"") self.radioButton30days.setText(u"Last 30 Days") self.gridLayout_2.addWidget(self.radioButton30days, 0, 1, 1, 1) self.radioButtonPrYear = QRadioButton(self.groupBoxFilters) self.buttonGroupFilter.addButton(self.radioButtonPrYear) self.radioButtonPrYear.setObjectName(u"radioButtonPrYear") self.radioButtonPrYear.setToolTip(u"") self.radioButtonPrYear.setStatusTip(u"") self.radioButtonPrYear.setWhatsThis(u"") self.radioButtonPrYear.setAccessibleName(u"") self.radioButtonPrYear.setAccessibleDescription(u"") self.radioButtonPrYear.setText(u"Previous Year") self.gridLayout_2.addWidget(self.radioButtonPrYear, 4, 0, 1, 1) self.radioButtonPrMonth = QRadioButton(self.groupBoxFilters) self.buttonGroupFilter.addButton(self.radioButtonPrMonth) self.radioButtonPrMonth.setObjectName(u"radioButtonPrMonth") self.radioButtonPrMonth.setToolTip(u"") self.radioButtonPrMonth.setStatusTip(u"") self.radioButtonPrMonth.setWhatsThis(u"") self.radioButtonPrMonth.setAccessibleName(u"") self.radioButtonPrMonth.setAccessibleDescription(u"") self.radioButtonPrMonth.setText(u"Previous Month") self.gridLayout_2.addWidget(self.radioButtonPrMonth, 2, 0, 1, 1) self.dateEditFilterFrom = QDateEdit(self.groupBoxFilters) self.dateEditFilterFrom.setObjectName(u"dateEditFilterFrom") self.dateEditFilterFrom.setToolTip(u"") self.dateEditFilterFrom.setStatusTip(u"") self.dateEditFilterFrom.setWhatsThis(u"") self.dateEditFilterFrom.setAccessibleName(u"") self.dateEditFilterFrom.setAccessibleDescription(u"") self.dateEditFilterFrom.setSpecialValueText(u"") self.dateEditFilterFrom.setDisplayFormat(u"dd.MM.yyyy") self.dateEditFilterFrom.setCalendarPopup(True) self.dateEditFilterFrom.setTimeSpec(Qt.UTC) self.gridLayout_2.addWidget(self.dateEditFilterFrom, 5, 0, 1, 1) self.dateEditFilterTo = QDateEdit(self.groupBoxFilters) self.dateEditFilterTo.setObjectName(u"dateEditFilterTo") self.dateEditFilterTo.setToolTip(u"") self.dateEditFilterTo.setStatusTip(u"") self.dateEditFilterTo.setWhatsThis(u"") self.dateEditFilterTo.setAccessibleName(u"") self.dateEditFilterTo.setAccessibleDescription(u"") self.dateEditFilterTo.setSpecialValueText(u"") self.dateEditFilterTo.setDisplayFormat(u"dd.MM.yyyy") self.dateEditFilterTo.setCalendarPopup(True) self.dateEditFilterTo.setTimeSpec(Qt.UTC) self.gridLayout_2.addWidget(self.dateEditFilterTo, 5, 1, 1, 1) self.pushButtonAppFilter = QPushButton(self.groupBoxFilters) self.pushButtonAppFilter.setObjectName(u"pushButtonAppFilter") self.pushButtonAppFilter.setToolTip(u"") self.pushButtonAppFilter.setStatusTip(u"") self.pushButtonAppFilter.setWhatsThis(u"") self.pushButtonAppFilter.setAccessibleName(u"") self.pushButtonAppFilter.setAccessibleDescription(u"") self.pushButtonAppFilter.setText(u"Apply Filter") self.gridLayout_2.addWidget(self.pushButtonAppFilter, 7, 0, 1, 1) self.pushButtonResetFilter = QPushButton(self.groupBoxFilters) self.pushButtonResetFilter.setObjectName(u"pushButtonResetFilter") self.pushButtonResetFilter.setToolTip(u"") self.pushButtonResetFilter.setStatusTip(u"") self.pushButtonResetFilter.setWhatsThis(u"") self.pushButtonResetFilter.setAccessibleName(u"") self.pushButtonResetFilter.setAccessibleDescription(u"") self.pushButtonResetFilter.setText(u"Reset Filter") self.gridLayout_2.addWidget(self.pushButtonResetFilter, 7, 1, 1, 1) self.retranslateUi(MainWindow) self.Tab1.setCurrentIndex(0) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle( _translate("Yet Another Log Book", "Yet Another Log Book")) self.ButtonAddLeg.setText(_translate("MainWindow", "Add Leg")) self.ButtonAddAC.setText(_translate("MainWindow", "Add A/C")) self.Tab1.setTabText(self.Tab1.indexOf(self.tab), _translate("MainWindow", "Log Book")) self.Tab1.setTabText(self.Tab1.indexOf(self.tab_2), _translate("MainWindow", "Tab 2"))
class HeadWidget(QWidget): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.resize(700, 105) self.setMinimumWidth(700) # Widgets self.work_type = QComboBox(self) self.work_type.setToolTip('Тип работы') self.work_type.addItems(work_types) self.work_type.setSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Preferred) self.lesson = QComboBox(self) self.lesson.setToolTip('Урок') self.lesson.addItems(school_lessons) self.lesson.setSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Preferred) actuality_label = QLabel('Дата начала', self) self.actuality = QDateEdit(self) self.actuality.setDate(date.today()) self.actuality.setMinimumDate(date(2017, 9, 1)) self.actuality.setToolTip('Дата начала') deadline_label = QLabel('Дата окончания', self) self.deadline = QDateEdit(self) self.deadline.setDate(date.today() + timedelta(1)) self.deadline.setMinimumDate(date.today()) self.deadline.setToolTip('Дата окончания') priority_label = QLabel('Приоритет', self) self.priority = QDoubleSpinBox(self) # self.priority.setMaximumWidth(80) self.priority.setMaximum(1.0) self.priority.setSingleStep(0.01) self.priority.setValue(0.5) self.priority.setToolTip('Приоритет') time_label = QLabel('Время выполнения', self) self.time = QTimeEdit(self) # self.time.setMaximumWidth(80) self.time.setDisplayFormat('HH:mm') self.time.setToolTip('Время выполнения') self.add_button = QPushButton('Добавить', self) self.add_button.setToolTip('Добавить в список') # Layouts actuality_layout = QHBoxLayout() actuality_layout.setSizeConstraint(QHBoxLayout.SetFixedSize) actuality_layout.addWidget(actuality_label) actuality_layout.addWidget(self.actuality) deadline_layout = QHBoxLayout() deadline_layout.setSizeConstraint(QHBoxLayout.SetFixedSize) deadline_layout.addWidget(deadline_label) deadline_layout.addWidget(self.deadline) priority_layout = QHBoxLayout() priority_layout.setSizeConstraint(QHBoxLayout.SetFixedSize) priority_layout.addWidget(priority_label) priority_layout.addWidget(self.priority) time_layout = QHBoxLayout() time_layout.setSizeConstraint(QHBoxLayout.SetFixedSize) time_layout.addWidget(time_label) time_layout.addWidget(self.time) layout = QGridLayout(self) layout.addWidget(self.lesson, 0, 0) layout.addWidget(self.work_type, 1, 0) layout.addLayout(actuality_layout, 0, 2) layout.addLayout(deadline_layout, 1, 2) layout.addLayout(time_layout, 0, 3) layout.addLayout(priority_layout, 1, 3) layout.addWidget(self.add_button, 2, 3) # Tab order self.setTabOrder(self.lesson, self.work_type) self.setTabOrder(self.work_type, self.actuality) self.setTabOrder(self.actuality, self.deadline) self.setTabOrder(self.deadline, self.time) self.setTabOrder(self.time, self.priority) self.setTabOrder(self.priority, self.add_button)