吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何用Python里面的tkinter來(lái)制作一個(gè)定時(shí)鬧鐘

汽車電子技術(shù) ? 來(lái)源:Python腳本 ? 作者:otfsenter ? 2023-03-03 15:34 ? 次閱讀

圖片

對(duì)于喜歡用電腦的人來(lái)說(shuō),

一旦往那里一坐,就很容易忘記時(shí)間,

接觸到Python的我們,當(dāng)然是要自己DIY一個(gè)鬧鐘啦,而且一定要醒目!

這個(gè)時(shí)候我就想到了tkinter

1- 需要的庫(kù):

  • tkinter
  • datetime
  • time

都是Python系統(tǒng)自帶的庫(kù),這里推薦Python3

2- tkinter最簡(jiǎn)單的使用

import tkinter

root = tkinter.Tk()

root.mainloop()

導(dǎo)入tkinter,實(shí)例化一個(gè)Tk類,進(jìn)入主循環(huán),完成,一個(gè)窗口就創(chuàng)建好了,

像下面這樣:

圖片

3- 無(wú)邊框tkinter窗口的創(chuàng)建

root.overrideredirect(True)

把窗口的邊框給去掉,用上面這個(gè)函數(shù),參數(shù)設(shè)置為True就可以了

root.geometry("{0}x{1}+0+0".format(
    root.winfo_screenwidth(),
    root.winfo_screenheight()))

把窗口的長(zhǎng)寬設(shè)置為屏幕的長(zhǎng)寬,這樣就能鋪滿整個(gè)屏幕,醒目!

# 這里用來(lái)設(shè)定字體,字體本身為黑色,字體背景為白色

tkinter.Label(root, text=word_text, fg='black', bg='white',
              # 字體是微軟雅黑, 大小是100
              font=('Microsoft YaHei', 100)
              # 把label這個(gè)控件居中
             ).place(anchor='center',
                     relx=0.5,
                     rely=0.5)

label控件一般是用來(lái)顯示文字的,把label居中,

字體設(shè)置為微軟雅黑,大小是100,字體顏色是黑色,label控件的顏色為白色

4- 時(shí)間的獲取

import datetime

def get_time():
    hour = datetime.datetime.now().hour
    minute = datetime.datetime.now().minute    
    return hour, minute

鬧鐘就是在固定的時(shí)間提醒你,

所以要獲取現(xiàn)在的時(shí)間,和我們?cè)O(shè)定的時(shí)間進(jìn)行對(duì)比,

到了時(shí)間,彈出窗口,達(dá)到提醒的效果

5- 代碼

import datetime
import time
import tkinter

HOUR = 20  # 幾點(diǎn)
MINUTE = 38  # 幾分

MESSAGE = "是時(shí)候睡覺(jué)了!"

TIMES = 5  # 提醒多少次
INTERVAL = 2  # 每次彈窗窗口間隔的秒數(shù)

class Reminder(object):
    def __init__(self, word_text):
        # 初始化
        self.root = tkinter.Tk()

        # 把窗口的邊框給去掉
        self.root.overrideredirect(True)

        # 設(shè)置窗口的大小
        self.root.geometry("{0}x{1}+0+0".format(
            self.root.winfo_screenwidth(),
            self.root.winfo_screenheight()))

        # 設(shè)置整個(gè)窗口的背景為白色
        self.root.configure(bg='white')

        # 這里用來(lái)設(shè)定字體,字體本身為黑色,字體背景為白色
        tkinter.Label(self.root, text=word_text, fg='black', bg='white',

                      # 字體是微軟雅黑, 大小是100
                      font=('Microsoft YaHei', 100)

                      # label這個(gè)控件居中
                      ).place(anchor='center',
                              relx=0.5,
                              rely=0.5)

        # 在窗口創(chuàng)建之后執(zhí)行 self.show 這個(gè)函數(shù)
        # 這里這樣處理,才能達(dá)到后面窗口顯示2秒再消失的效果
        self.root.after_idle(self.show)

    def hide(self):
        """
        隱藏窗口并退出
        """
        self.root.withdraw()
        self.root.quit()

    def show(self):
        """
        顯示窗口,持續(xù)2秒鐘
        """
        self.root.deiconify()
        self.root.after(1000 * 2, self.hide)

    def start(self):
        """
        進(jìn)入死循環(huán),這樣窗口才能一直存在
        """
        self.root.mainloop()


def get_time():
    hour = datetime.datetime.now().hour
    minute = datetime.datetime.now().minute    
    return hour, minute


def prompt():
    """
    彈出窗口
    """
    root = Reminder(MESSAGE)
    root.start()

    time.sleep(INTERVAL)


def main():
    # 這里的while循環(huán)是為了保證時(shí)間沒(méi)到,腳本不會(huì)退出
    while True:

        hour, minute = get_time()

        # 判斷小時(shí)數(shù)和分鐘數(shù)
        if hour == HOUR and minute >= MINUTE:

            # 一般這里都是一個(gè)字母i,
            # 我這里純粹就想循環(huán)五次
            # Python里面就可以用 _ 來(lái)替代
            for _ in range(TIMES):
                prompt()
            break

if __name__ == '__main__':
    main()
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • True
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    12004
  • 窗口
    +關(guān)注

    關(guān)注

    0

    文章

    66

    瀏覽量

    10898
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4346

    瀏覽量

    62978
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    鬧鐘定時(shí)器電路

    該簡(jiǎn)單的電路可將你的鬧鐘變成個(gè)專門的定時(shí)器。當(dāng)鬧鈴激活之后,鬧鐘上的小燈就會(huì)亮。
    發(fā)表于 12-08 11:06 ?8505次閱讀
    <b class='flag-5'>鬧鐘</b><b class='flag-5'>定時(shí)</b>器電路

    如何利用Python中的tkinter和MyQR制作個(gè)性二維碼轉(zhuǎn)換器

    利用Python中的tkinter和MyQR制作個(gè)性二維碼轉(zhuǎn)換器
    發(fā)表于 06-18 06:17

    何用RTC時(shí)鐘去配置個(gè)鬧鐘

    什么是RTC?RTC的工作原理是什么?RTC時(shí)鐘源有哪些?如何用RTC時(shí)鐘去配置個(gè)鬧鐘呢?
    發(fā)表于 11-01 06:46

    Python是如何使用Tkinter快速創(chuàng)建GUI應(yīng)用程序的

    Tkinter是什么?Python是如何使用Tkinter快速創(chuàng)建GUI應(yīng)用程序的?
    發(fā)表于 12-23 07:15

    怎樣去設(shè)計(jì)個(gè)基于單片機(jī)的定時(shí)鬧鐘

    確定修改結(jié)束。用掃描方式動(dòng)態(tài)顯示時(shí)、分、秒,第2,4 數(shù)碼管加小數(shù)點(diǎn),并且要求第4數(shù)碼管小數(shù)點(diǎn)每秒閃爍次。可以設(shè)置鬧鐘,到時(shí)間蜂鳴器報(bào)警難點(diǎn)及技巧:1、通過(guò)在定時(shí)器中斷來(lái)設(shè)置標(biāo)志位
    發(fā)表于 01-13 08:26

    【地平線旭日X3派試用體驗(yàn)】40P接口程序開(kāi)發(fā)體驗(yàn)-基于Python+Tkinter的串口調(diào)試助手

    開(kāi)發(fā),不必關(guān)注底層硬件個(gè)細(xì)節(jié),十分方便高效。本串口調(diào)試助手拋磚引玉,后面可以編寫(xiě)PWM,IO,IIC,SPI等總線的監(jiān)控或者調(diào)試助手,配上圖形界面的上位機(jī)程序,甚至可以將本板舉改造為高效的總線調(diào)試工具。
    發(fā)表于 07-11 23:56

    【飛凌RK3568開(kāi)發(fā)板試用體驗(yàn)】tkinter的第一個(gè)桌面程序

    :好象是替代pyqt;Wx :是python當(dāng)中居中的個(gè)圖形化,學(xué)習(xí)結(jié)構(gòu)很清晰Pywin :是python windows 下的模塊,攝像頭控制(opencv),常用于外掛
    發(fā)表于 12-03 07:36

    基于單片機(jī)的定時(shí)鬧鐘設(shè)計(jì)

    基于51單片機(jī)的定時(shí)鬧鐘設(shè)計(jì)
    發(fā)表于 12-14 15:07 ?22次下載

    何用Python制作個(gè)自動(dòng)發(fā)送程序

    怎么辦呢?是時(shí)候讓Python登場(chǎng)了! Python登場(chǎng) 這次我們來(lái)一個(gè)自動(dòng)發(fā)送微信的程序,在深夜十二點(diǎn)的時(shí)候給女朋友發(fā)去消息,也算是盡了
    的頭像 發(fā)表于 11-22 09:28 ?1535次閱讀

    使用555定時(shí)來(lái)制作些樂(lè)器

    電子發(fā)燒友網(wǎng)站提供《使用555定時(shí)來(lái)制作些樂(lè)器.zip》資料免費(fèi)下載
    發(fā)表于 11-16 09:56 ?1次下載
    使用555<b class='flag-5'>定時(shí)</b>器<b class='flag-5'>來(lái)</b><b class='flag-5'>制作</b><b class='flag-5'>一</b>些樂(lè)器

    使用Arduino和Python Tkinter進(jìn)行RGB Led控制

    電子發(fā)燒友網(wǎng)站提供《使用Arduino和Python Tkinter進(jìn)行RGB Led控制.zip》資料免費(fèi)下載
    發(fā)表于 11-30 12:00 ?0次下載
    使用Arduino和<b class='flag-5'>Python</b> <b class='flag-5'>Tkinter</b>進(jìn)行RGB Led控制

    如何把Python腳本集成到GUI工具包-Tkinter

    Tkinter(即 tk interface,簡(jiǎn)稱“Tk”)本質(zhì)上是對(duì) Tcl/Tk 軟件包的 Python 接口封裝,它是 Python 官方推薦的 GUI 工具包,屬于 Python
    的頭像 發(fā)表于 05-05 15:02 ?706次閱讀
    如何把<b class='flag-5'>Python</b>腳本集成到GUI工具包-<b class='flag-5'>Tkinter</b>

    Python寫(xiě)機(jī)器人上位機(jī)

    Python寫(xiě)GUI的插件比較多,常用的有Tkinter、pyqt5,本將使用pyqt5寫(xiě)機(jī)器人的上位機(jī)。TkinterPython的標(biāo)準(zhǔn) GUI 庫(kù),是
    發(fā)表于 05-09 11:10 ?0次下載
    <b class='flag-5'>Python</b>寫(xiě)機(jī)器人上位機(jī)

    何用Python來(lái)實(shí)現(xiàn)文件系統(tǒng)的操作功能

    就來(lái)介紹下如何用 Python 來(lái)實(shí)現(xiàn)這些功能 輸出當(dāng)前的路徑 我們可以通過(guò) Python 當(dāng)中的 OS 庫(kù)
    的頭像 發(fā)表于 10-30 14:27 ?453次閱讀
    如<b class='flag-5'>何用</b><b class='flag-5'>Python</b><b class='flag-5'>來(lái)</b>實(shí)現(xiàn)文件系統(tǒng)的操作功能

    python如何打開(kāi)gui界面

    Python中打開(kāi)GUI界面,可以使用多種庫(kù)或框架,如Tkinter、PyQt、wxPython等。下面將詳細(xì)介紹如何使用Tkinter創(chuàng)建個(gè)
    的頭像 發(fā)表于 11-22 14:12 ?1029次閱讀
    百家乐官网游戏规则介绍| 大发888娱乐城外挂| 悍马百家乐官网的玩法技巧和规则 | 好望角百家乐官网的玩法技巧和规则| 聂拉木县| 德州扑克胜率计算器| 星期八百家乐的玩法技巧和规则| 我的做生意财位| 破战百家乐官网的玩法技巧和规则| 百家乐官网软件编辑原理| 博彩公司排名| 大发888娱乐注册| 百家乐娱乐城体验金| 永利百家乐赌场娱乐网规则| 1月24进房子风水好吗| 网上百家乐官网是真是假天涯论坛| 百家乐官网视频游戏中心| 图片| 彩票| 百家乐官网类游戏平台| 网上百家乐官网网址| 本溪市| 百家乐官网的保单打法| 百家乐官网虚拟视频| 尉氏县| 大发888战神娱乐| 大发888博爱彩| 大发888 娱乐平台| 大发888游戏网址| 360棋牌游戏| 真钱轮盘| 都江堰市| 乐天堂| 新绛县| 澳门百家乐官网怎么赢钱| 百家乐官网赌场赌场网站| 休闲百家乐官网的玩法技巧和规则| 百家乐官网下注法| gt百家乐平台假吗| 百家乐赌场占多大概率| 网上玩百家乐会出签吗|