欢迎访问宙启技术站
智能推送

在PyQt5中使用QDialog()实现时间选择对话框

发布时间:2023-12-16 11:13:33

在PyQt5中,可以使用QDialog类实现时间选择对话框。QDialog是PyQt5中的一个对话框窗口类,用于创建和管理对话框窗口。

以下是一个使用QDialog实现时间选择对话框的例子:

import sys
from PyQt5.QtWidgets import QApplication, QDialog, QFormLayout, QLabel, QTimeEdit, QDialogButtonBox, QVBoxLayout


class TimeDialog(QDialog):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.setWindowTitle("Time Dialog")

        # 创建布局
        layout = QVBoxLayout()

        # 创建时间选择器
        self.time_edit = QTimeEdit()
        self.time_edit.setDisplayFormat("hh:mm")
        layout.addWidget(self.time_edit)

        # 创建按钮
        button_box = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel)
        button_box.accepted.connect(self.accept)
        button_box.rejected.connect(self.reject)
        layout.addWidget(button_box)

        # 设置布局
        self.setLayout(layout)


def show_time_dialog():
    app = QApplication(sys.argv)
    dialog = TimeDialog()
    if dialog.exec_() == QDialog.Accepted:
        selected_time = dialog.time_edit.time().toString("hh:mm")
        print("Selected time:", selected_time)

    sys.exit(app.exec_())


if __name__ == "__main__":
    show_time_dialog()

在上述代码中,首先导入了QApplication、QDialog、QFormLayout、QLabel、QTimeEdit、QDialogButtonBox和QVBoxLayout等所需的类。

然后创建了一个名为TimeDialog的自定义对话框类,该类继承自QDialog。在TimeDialog的构造函数中,设置了对话框的标题,然后创建了一个垂直布局,并将布局设置为对话框的布局。

在布局中添加了一个QTimeEdit组件,该组件用于选择时间。setDisplayFormat方法用于设置显示时间的格式。

然后创建了一个QDialogButtonBox组件,其中包含了确定和取消按钮。将accepted信号连接到accept方法,当用户点击确定按钮时,会触发accept方法。将rejected信号连接到reject方法,当用户点击取消按钮时,会触发reject方法。

最后,将布局设置为对话框的布局。

在show_time_dialog方法中,创建了一个QApplication对象,并创建了一个TimeDialog对象。如果用户点击了确定按钮(对话框的exec_方法返回QDialog.Accepted),则获取选择的时间,并输出到控制台。

最后,退出应用程序。

运行上述代码,将弹出一个带有时间选择器的对话框。用户可以在选择器中选择时间,并点击确定按钮后,程序将输出所选的时间。

这就是使用QDialog实现时间选择对话框的方法。可以根据需要对对话框进行自定义,添加其他组件和布局,以满足具体的需求。