定时关机系统~~开整

前言

闲来无事突然想写一个可以自动关机的系统,写之前需要了解哪几方面内容呢?
定时关机系统需要的最基础的两个方面:

  1. 图形可视化
  2. 关机指令

图形可视化

首先用pyqt5设计一个漂亮的界面

class MainUi(QtWidgets.QMainWindow):
    def __init__(self):
        super().__init__()
        self.init_ui()
        self.setWindowTitle("定时关机")
        
    def init_ui(self):
        self.setFixedSize(960,700)
        self.main_widget = QtWidgets.QWidget()  # 创建窗口主部件
        self.main_layout = QtWidgets.QGridLayout()  # 创建主部件的网格布局
        self.main_widget.setLayout(self.main_layout)  # 设置窗口主部件布局为网格布局

        self.left_widget = QtWidgets.QWidget()  # 创建左侧部件
        self.left_widget.setObjectName('left_widget')
        self.left_layout = QtWidgets.QGridLayout()  # 创建左侧部件的网格布局层
        self.left_widget.setLayout(self.left_layout) # 设置左侧部件布局为网格

        self.right_widget = QtWidgets.QWidget() # 创建右侧部件
        self.right_widget.setObjectName('right_widget')
        self.right_layout = QtWidgets.QGridLayout()
        self.right_widget.setLayout(self.right_layout) # 设置右侧部件布局为网格
        
        self.right_bar_widget = QtWidgets.QWidget() # 右侧顶部搜索框部件
        self.right_bar_layout = QtWidgets.QGridLayout() # 右侧顶部搜索框网格布局
        self.right_bar_widget.setLayout(self.right_bar_layout)
        self.search_icon = QtWidgets.QLabel(chr(0xf000) + ' '+'输入时间  ')
        self.search_icon.setFont(qtawesome.font('fa', 16))
        self.search_input = QtWidgets.QLineEdit()

        self.search_input.setPlaceholderText("请正确输入时间")
        self.search_input.setClearButtonEnabled(True)
        self.search_input.isClearButtonEnabled() 
        self.search_input.setMaxLength(6)    #长度限制设定
        
        self.right_bar_layout.addWidget(self.search_icon,0,0,1,1)
        self.right_bar_layout.addWidget(self.search_input,0,1,1,8)
        self.right_layout.addWidget(self.right_bar_widget, 0, 0, 1, 8)
        
        self.main_layout.addWidget(self.left_widget,0,0,12,2)
        self.main_layout.addWidget(self.right_widget,0,2,12,10) 
        self.setCentralWidget(self.main_widget) # 设置窗口主部件
        #设置三个按钮,只有第一个按钮可以使用
        self.Yes = QtWidgets.QPushButton("确认输入")  # 确定按钮
        self.left_visit = QtWidgets.QPushButton("")  # 空白按钮
        self.left_mini = QtWidgets.QPushButton("")  # 最小化按钮
        time = self.Yes.clicked.connect(lambda:self.print_(self.search_input.text()))#无法输出文字

        self.left_button_1 = QtWidgets.QPushButton(qtawesome.icon('fa.home', color='white'), "确定时间")
        self.left_button_1.setObjectName('left_button')

        self.left_button_2 = QtWidgets.QPushButton(qtawesome.icon('fa.comment', color='white'), "建议")
        self.left_button_2.setObjectName('left_button')
        self.left_button_3 = QtWidgets.QPushButton(qtawesome.icon('fa.star', color='white'), "关注")
        self.left_button_3.setObjectName('left_button')
        self.left_button_4 = QtWidgets.QPushButton(qtawesome.icon('fa.question', color='white'), "问题")
        self.left_button_4.setObjectName('left_button')
        self.left_xxx = QtWidgets.QPushButton(" ")  
        
        self.left_layout.addWidget(self.left_mini, 0, 0,1,1)
        self.left_layout.addWidget(self.Yes, 0, 2,1,1)
        self.left_layout.addWidget(self.left_visit, 0, 1, 1, 1)
        self.left_layout.addWidget(self.left_button_1, 2, 0,1,3)
        self.left_layout.addWidget(self.left_button_2, 3, 0,1,3)
        self.left_layout.addWidget(self.left_button_3, 4, 0,1,3)
        self.left_layout.addWidget(self.left_button_4, 5, 0,1,3)
        
        
        
        self.right_recommend_label = QtWidgets.QLabel("目前时间倒计时:")
        self.right_recommend_label.setObjectName('right_lable')
        self.right_recommend_widget = QtWidgets.QWidget()
        self.right_recommend_layout = QtWidgets.QGridLayout() # 布局
        self.right_recommend_widget.setLayout(self.right_recommend_layout)
        
        self.right_layout.addWidget(self.right_recommend_label, 1, 0, 1, 9)
        self.right_layout.addWidget(self.right_recommend_widget, 2, 0, 2, 9)

def main():
    app = QtWidgets.QApplication(sys.argv)
    gui = MainUi()
    gui.show()
    sys.exit(app.exec_())

if __name__ == '__main__':

    main()

一个简单的界面就出来了
请添加图片描述

关机系统

然后是加入关机指令,os.system('shutdown -s -t %d' % s1)是Python中调用关机指令的代码,用一个小小的逻辑,超过24即可回归正常时间,这目前仅仅是一个一天内定时关机的程序

def Make_time(self):
        if self.h1 > 24:
            self.h1 = 24
            self.m1 = 0
            print("抱歉,最晚时间为晚上24:00,已为您更改时间")
        if self.m1 > 60:
            m1 = 60
        if self.h1 < self.h2:
            h1 = self.h1 + 24
        s1 = (self.h1 + (self.m1 / 60.0) - self.h2 - (self.m2 / 60.0)) * 3600 - self.miao
        if s1 <= 0:
            print("ERROR%d"% s1)
        else:
            print('距离关机还有 %d 秒' % s1)
            os.system('shutdown -s -t %d' % s1)

源码地址

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Love And Program

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值