Exemple #1
0
    def __init__(self):
        QWidget.__init__(self)
        self._line_edit = ClearableLineEdit()

        self._calendar_button = QToolButton()
        self._calendar_button.setPopupMode(QToolButton.InstantPopup)
        self._calendar_button.setFixedSize(26, 26)
        self._calendar_button.setAutoRaise(True)
        self._calendar_button.setIcon(resourceIcon("calendar_date_range.svg"))
        self._calendar_button.setStyleSheet(
            "QToolButton::menu-indicator { image: none; }")

        tool_menu = QMenu(self._calendar_button)
        self._calendar_widget = QCalendarWidget(tool_menu)
        action = QWidgetAction(tool_menu)
        action.setDefaultWidget(self._calendar_widget)
        tool_menu.addAction(action)
        self._calendar_button.setMenu(tool_menu)

        layout = QHBoxLayout()
        layout.setContentsMargins(0, 0, 0, 0)
        layout.addWidget(self._line_edit)
        layout.addWidget(self._calendar_button)
        self.setLayout(layout)

        self._calendar_widget.activated.connect(self.setDate)
    def __init__(self, subject_settings):
        super(SubjectWidget, self).__init__()

        self.subject_enums = DBWrapper().return_enums('subject')

        subject_layout = QGridLayout(self)
        subject_layout.setColumnMinimumWidth(2, 60)

        subject_layout.addWidget(QLabel("Id: "), 0, 0, 1, 1)
        self.id_combo = QComboBox()
        self.id_combo.setEditable(True)
        self.id_combo.addItem('')
        self.id_combo.addItems(DBWrapper().list_all_subjects())
        self.id_combo.currentIndexChanged.connect(self.load_subject)
        self.id_combo.lineEdit().editingFinished.connect(self.check_subject)

        subject_layout.addWidget(self.id_combo, 0, 1, 1, 4)

        subject_layout.addWidget(QLabel("Name: "), 1, 0, 1, 1)
        self.name_edit = QLineEdit()
        self.name_edit.setMaxLength(135)
        subject_layout.addWidget(self.name_edit, 1, 1, 1, 4)

        subject_layout.addWidget(QLabel("Sex: "), 2, 0, 1, 1)
        self.sex_combo = QComboBox()
        self.sex_combo.addItems(self.subject_enums['sex'] if 'sex' in
                                self.subject_enums.keys() else [])
        self.sex_combo.setCurrentIndex(0)
        subject_layout.addWidget(self.sex_combo, 2, 1, 1, 1)

        subject_layout.addWidget((QLabel("Date of birth: ")), 3, 0, 1, 1)
        self.dob_calendar = QCalendarWidget()
        subject_layout.addWidget(self.dob_calendar, 3, 1, 1, 3)

        subject_layout.addWidget(QLabel("NSP file comment: "), 4, 0, 1, 1)
        self.file_comment = QTextEdit("")
        self.file_comment.setMaximumHeight(150)
        subject_layout.addWidget(self.file_comment, 4, 1, 1, 4)

        # Subject Settings
        self.subject_settings = subject_settings
        if not self.subject_settings:
            self.update_settings_from_db(-1)

        self.update_subject()
Exemple #3
0
    def initUI(self):
        ml = QVBoxLayout(self)
        ul = QHBoxLayout(self)
        dl = QHBoxLayout(self)
        ml.addLayout(ul)
        ml.addLayout(dl)

        col = QColor(0, 0, 0)
        self.colorText = 'Color Nmae: {}'
        self.btn = QPushButton('Dialog', self)
        self.btn.move(20, 20)
        self.btn.clicked.connect(self.showDialog)

        self.btn2 = QPushButton('Color', self)
        self.btn2.move(20, 40)
        self.btn2.clicked.connect(self.showColorDialoge)

        self.frm = QFrame(self)
        self.frm.setStyleSheet("QWidget { background-color: %s }" % col.name())
        self.frm.setGeometry(130, 50, 100, 100)

        self.le = QLineEdit(self)
        self.le.move(130, 22)

        self.label = QLabel(self.colorText.format(None), self)
        self.label.setGeometry(20, 80, 100, 30)

        self.timer = QBasicTimer()
        self.pb = QProgressBar(self)
        self.step = 0
        self.pb.setGeometry(20, 170, 300, 20)

        # calendar
        self.timeLable = QLabel('time is: ', self)
        # self.timeLable.setGeometry(20, 120, 100, 30)
        cal = QCalendarWidget(self)
        cal.clicked[QDate].connect(self.showDate)

        ul.addWidget(self.timeLable)
        dl.addWidget(cal)

        self.setLayout(ml)
        self.setGeometry(300, 300, 550, 550)
        self.setWindowTitle('Dialog')
        self.show()
Exemple #4
0
def create_calendar_dock_widget(view_menu: QMenu) -> DockWidget:
    '''
    Create calendar dock widget

    Parameters
    ----------
    view_menu : QMenu

    Returns
    -------
    value : DockWidget
    '''
    widget = QCalendarWidget()

    _State.calendar_count += 1
    dock_widget = DockWidget("Calendar {}".format(_State.calendar_count))
    dock_widget.set_widget(widget)
    dock_widget.set_toggle_view_action_mode(ToggleViewActionMode.show)
    view_menu.addAction(dock_widget.toggle_view_action())
    return dock_widget
Exemple #5
0
 def create_calendar(self):
     cal = QCalendarWidget(self)
     cal.setGridVisible(True)
     cal.clicked[QDate].connect(self.insert_date)
     return cal
Exemple #6
0
 def initUI(self):
     cal = QCalendarWidget(self)
     cal.clicked[QDate].connect(self.mainWindow.updateLeft)
class SubjectWidget(QWidget):
    subject_change = Signal(int)

    def __init__(self, subject_settings):
        super(SubjectWidget, self).__init__()

        self.subject_enums = DBWrapper().return_enums('subject')

        subject_layout = QGridLayout(self)
        subject_layout.setColumnMinimumWidth(2, 60)

        subject_layout.addWidget(QLabel("Id: "), 0, 0, 1, 1)
        self.id_combo = QComboBox()
        self.id_combo.setEditable(True)
        self.id_combo.addItem('')
        self.id_combo.addItems(DBWrapper().list_all_subjects())
        self.id_combo.currentIndexChanged.connect(self.load_subject)
        self.id_combo.lineEdit().editingFinished.connect(self.check_subject)

        subject_layout.addWidget(self.id_combo, 0, 1, 1, 4)

        subject_layout.addWidget(QLabel("Name: "), 1, 0, 1, 1)
        self.name_edit = QLineEdit()
        self.name_edit.setMaxLength(135)
        subject_layout.addWidget(self.name_edit, 1, 1, 1, 4)

        subject_layout.addWidget(QLabel("Sex: "), 2, 0, 1, 1)
        self.sex_combo = QComboBox()
        self.sex_combo.addItems(self.subject_enums['sex'] if 'sex' in
                                self.subject_enums.keys() else [])
        self.sex_combo.setCurrentIndex(0)
        subject_layout.addWidget(self.sex_combo, 2, 1, 1, 1)

        subject_layout.addWidget((QLabel("Date of birth: ")), 3, 0, 1, 1)
        self.dob_calendar = QCalendarWidget()
        subject_layout.addWidget(self.dob_calendar, 3, 1, 1, 3)

        subject_layout.addWidget(QLabel("NSP file comment: "), 4, 0, 1, 1)
        self.file_comment = QTextEdit("")
        self.file_comment.setMaximumHeight(150)
        subject_layout.addWidget(self.file_comment, 4, 1, 1, 4)

        # Subject Settings
        self.subject_settings = subject_settings
        if not self.subject_settings:
            self.update_settings_from_db(-1)

        self.update_subject()

    def update_subject(self):
        self.name_edit.setText(
            self.read_dict_value(self.subject_settings, 'name'))
        self.id_combo.setCurrentText(
            self.read_dict_value(self.subject_settings, 'id'))
        self.sex_combo.setCurrentText(
            self.read_dict_value(self.subject_settings, 'sex'))
        dob = self.read_dict_value(self.subject_settings, 'birthday')
        if dob not in [None, '']:
            q_dob = QDate.fromString(dob, 'yyyy-MM-d')
            self.dob_calendar.setSelectedDate(q_dob)
        else:
            self.dob_calendar.setSelectedDate(QDate.currentDate())

    def update_settings_from_db(self, idx):
        for key, value in DBWrapper().load_subject_details(idx).items():
            self.subject_settings[key] = value

    def load_subject(self):
        # id is a unique and mandatory field
        self.check_subject()
        self.update_subject()

    def check_subject(self):
        # when changing the id in the combobox, can be modifying or entering an existing subject id. Check to load data
        # if so.
        curr_id = self.id_combo.currentText()
        if curr_id != '':
            self.update_settings_from_db(curr_id)
            self.subject_change.emit(self.subject_settings['subject_id'])
        else:
            self.update_settings_from_db(-1)
            self.subject_change.emit(-1)

    @staticmethod
    def read_dict_value(dictionary, value):
        return str(dictionary[value]) if value in dictionary.keys() else ''

    def to_dict(self):
        self.subject_settings['id'] = self.id_combo.currentText()
        self.subject_settings['name'] = self.name_edit.text()
        self.subject_settings['sex'] = self.sex_combo.currentText()
        self.subject_settings['birthday'] = self.dob_calendar.selectedDate(
        ).toPyDate()
        self.subject_settings['NSP_comment'] = self.file_comment.toPlainText()