自动保存编辑器

该代码实现了一个自动保存编辑器,通过图形用户界面(GUI)来管理和设置定期自动保存的时间。使用PyQt6库来构建界面,包括日期时间编辑控件和复选框。主要类包括:AutoSaveEditorDateTimeWidget

类和方法

AutoSaveEditor

AutoSaveEditor 继承自 BWidget,实现了一个自动保存时间的编辑器。

信号:

  • subscriptionsChanged:订阅改变信号。
  • propertiesChanged:属性改变信号。

方法:

  • __init__(self, props, max_items, name='regular_auto_save_times', parent=None):初始化自动保存编辑器。

    • props:属性对象,用于存储和管理配置数据。
    • max_items:最大项目数量。
    • name:属性名称,默认为’regular_auto_save_times’。
    • parent:父窗口。
    • 设置布局,并加载和初始化日期时间控件。
  • load_AutoSaveEditor_props(props, prop_name, max_items):加载自动保存编辑器属性。

    • props:属性对象。
    • prop_name:属性名称。
    • max_items:最大项目数量。
    • 返回日期时间和勾选状态。
  • update_props(props, prop_name, datetimes, ticked):更新属性。

    • props:属性对象。
    • prop_name:属性名称。
    • datetimes:日期时间数组。
    • ticked:勾选状态数组。
  • update_datetime(self, idx, datetime_save):更新日期时间。

    • idx:索引。
    • datetime_save:新的日期时间。
  • update_ticked(self, idx, ticked):更新勾选状态。

    • idx:索引。
    • ticked:新的勾选状态。
  • accept(self):接受并保存更改。

    • 更新属性并通知父组件,然后关闭窗口。

DateTimeWidget

DateTimeWidget 继承自 QFrame,实现了一个日期时间选择控件。

方法:

  • __init__(self, idx, parent, datetime_save=datetime.datetime.now(), ticked=False):初始化日期时间控件。

    • idx:索引。
    • parent:父组件。
    • datetime_save:初始日期时间,默认为当前时间。
    • ticked:初始勾选状态,默认为False。
    • 设置布局,创建并初始化日期时间编辑控件和复选框。
  • datetime_changed(self):日期时间改变事件处理。

    • 更新日期时间,并通知父组件。
  • ticked_changed(self):勾选状态改变事件处理。

    • 更新勾选状态,并通知父组件。

主函数

代码通过创建 QApplication 实例和 AutoSaveEditor 窗口来执行,并启动应用程序的主循环。

if __name__ == '__main__':
    import sys

    props = Properties('Tests/AutoSaveEditor')
    pp = AutoSaveEditor(props, max_items=20)
    if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):
        QApplication.instance().exec_()

代码执行

该代码通过命令行执行,创建一个AutoSaveEditor对象,并显示自动保存编辑器窗口。

类的详细说明

AutoSaveEditor

AutoSaveEditor类用于管理和设置定期自动保存的时间。它提供了一个图形用户界面,允许用户添加、编辑和删除自动保存的时间点。

方法:

  • __init__(self, props, max_items, name='regular_auto_save_times', parent=None)

    • 初始化方法,设置布局并加载和初始化日期时间控件。
  • load_AutoSaveEditor_props(props, prop_name, max_items)

    • 静态方法,用于从属性对象中加载日期时间和勾选状态,并返回它们。
  • update_props(props, prop_name, datetimes, ticked)

    • 静态方法,用于更新属性对象中的日期时间和勾选状态。
  • update_datetime(self, idx, datetime_save)

    • 更新指定索引的日期时间。
  • update_ticked(self, idx, ticked)

    • 更新指定索引的勾选状态。
  • accept(self)

    • 接受并保存更改,更新属性并通知父组件,然后关闭窗口。

DateTimeWidget

DateTimeWidget类用于显示和编辑单个日期时间和勾选状态。

方法:

  • __init__(self, idx, parent, datetime_save=datetime.datetime.now(), ticked=False)

    • 初始化方法,设置布局,创建并初始化日期时间编辑控件和复选框。
  • datetime_changed(self)

    • 日期时间改变事件处理,更新日期时间并通知父组件。
  • ticked_changed(self)

    • 勾选状态改变事件处理,更新勾选状态并通知父组件。