util.py 文件源码

python
阅读 23 收藏 0 点赞 0 评论 0

项目:bubblesub 作者: rr- 项目源码 文件源码
def time_jump_dialog(
        parent,
        value=0,
        relative_label='Time:',
        absolute_label='Time:',
        relative_checked=True,
        show_radio=True):
    class TimeJumpDialog(QtWidgets.QDialog):
        def __init__(self, parent=None):
            super().__init__(parent)

            self._label = QtWidgets.QLabel('', self)
            self._time_edit = bubblesub.ui.util.TimeEdit(self)
            self._radio_rel = QtWidgets.QRadioButton('Relative', self)
            self._radio_abs = QtWidgets.QRadioButton('Absolute', self)
            if relative_checked:
                self._radio_rel.setChecked(True)
            else:
                self._radio_abs.setChecked(True)
            strip = QtWidgets.QDialogButtonBox(self)
            strip.addButton(strip.Ok)
            strip.addButton(strip.Cancel)

            if not show_radio:
                self._radio_abs.setHidden(True)
                self._radio_rel.setHidden(True)

            strip.accepted.connect(self.accept)
            strip.rejected.connect(self.reject)
            self._radio_rel.clicked.connect(self._on_radio_click)
            self._radio_abs.clicked.connect(self._on_radio_click)

            layout = QtWidgets.QVBoxLayout(self)
            layout.addWidget(self._label)
            layout.addWidget(self._time_edit)
            layout.addWidget(self._radio_rel)
            layout.addWidget(self._radio_abs)
            layout.addWidget(strip)

            self._on_radio_click()
            self._time_edit.set_value(value)

        def _on_radio_click(self):
            is_relative = self._radio_rel.isChecked()
            if is_relative:
                self._label.setText(relative_label)
            else:
                self._label.setText(absolute_label)
            self._time_edit.set_allow_negative(is_relative)

        def value(self):
            return (
                self._time_edit.get_value(),
                self._radio_rel.isChecked())

    dialog = TimeJumpDialog(parent)
    if dialog.exec_():
        return dialog.value()
    return None
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号