使用 PyQt5 創建一個數字時鐘

使用 PyQt5 創建一個數字時鐘

  • 效果
  • 代碼解析
    • 定義時鐘類
    • 初始化界面
    • 顯示時間
  • 完整代碼

在這篇博客中,我們將使用 PyQt5 創建一個簡單的數字時鐘。

效果

在這里插入圖片描述

代碼解析

定義時鐘類

class ClockWindow(QMainWindow):def __init__(self):super().__init__()self.setWindowTitle('Digital Clock')self.setGeometry(100, 100, 400, 200)self.initUI()

初始化界面

def initUI(self):layout = QVBoxLayout()self.label = QLabel(self)self.label.setAlignment(Qt.AlignCenter)self.label.setStyleSheet("font-size: 48px;")layout.addWidget(self.label)container = QWidget()container.setLayout(layout)self.setCentralWidget(container)timer = QTimer(self)timer.timeout.connect(self.showTime)timer.start(1000)self.showTime()
  • 創建一個 QVBoxLayout 布局。
  • 創建一個 QLabel 控件用于顯示時間。
  • 設置標簽居中對齊。 使用 setStyleSheet 方法設置標簽字體大小為 48 像素。
  • 將標簽添加到布局中。
  • 創建一個容器 QWidget,將布局設置為該容器的布局,并將容器設置為主窗口的中央控件。
  • 創建一個 QTimer,每秒觸發一次 timeout 事件,連接到 showTime 方法。 調用 showTime 方法顯示當前時間。

顯示時間

def showTime(self):current_time = QTime.currentTime().toString('hh:mm:ss')self.label.setText(current_time)

完整代碼

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel, QVBoxLayout, QWidget
from PyQt5.QtCore import QTimer, QTime, Qtclass ClockWindow(QMainWindow):def __init__(self):super().__init__()self.setWindowTitle('Digital Clock')self.setGeometry(100, 100, 400, 200)self.initUI()def initUI(self):layout = QVBoxLayout()self.label = QLabel(self)self.label.setAlignment(Qt.AlignCenter)self.label.setStyleSheet("font-size: 48px;")layout.addWidget(self.label)container = QWidget()container.setLayout(layout)self.setCentralWidget(container)timer = QTimer(self)timer.timeout.connect(self.showTime)timer.start(1000)self.showTime()def showTime(self):current_time = QTime.currentTime().toString('hh:mm:ss')self.label.setText(current_time)if __name__ == "__main__":app = QApplication(sys.argv)window = ClockWindow()window.show()sys.exit(app.exec_())

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/38398.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/38398.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/38398.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

對數函數轉換公式

對數函數換底公式. 1. 2. 3. 以上公式可以由以下公式推導而來, 1. 2. 3. 4.

zabbix監控進階:如何分時段設置不同告警閾值(多閾值告警)

作者 樂維社區(forum.lwops.cn)樂樂 在生產環境中,企業的業務系統狀態并不是一成不變的。在業務高峰時段,如節假日、促銷活動或特定時間段,系統負載和用戶訪問量會大幅增加,此時可能需要設置更高的告警閾值…

頂頂通呼叫中心中間件-私有化TTS安裝指南

頂頂通呼叫中心中間件-私有化TTS安裝指南 1、下載模型 執行這個下載模型 wget http://down.ddrj.com/paddlespeech_tts.zip 2、解壓模型 執行這個解壓模型 unzip -d /ddt/asrproxy paddlespeech_tts.zip 3、配置asrproxy.json文件 這里需要注意的是:以下內容…

安全與加密常識(7)pem, der, crt, cer, key等各類證書與密鑰文件后綴解析

在計算機科學和安全領域,PEM, DER, CRT, CER, KEY等文件后綴經常出現在證書和密鑰文件的命名中。這些后綴代表了不同的文件格式和編碼方式,對于理解它們的含義和應用至關重要。本文將逐一解析這些后綴,幫助讀者更好地理解和使用。 PEM(Privacy-Enhanced Mail) PEM是一種…

Spark學習3.0

目錄 10.3.4 Spark運行原理 1.設計背景 2.RDD概念 3.RDD特性 4.RDD之間的依賴關系 窄依賴和寬依賴 5.Stage的劃分 Stage的類型包括兩種:ShuffleMapStage和ResultStage 6.RDD運行過程 10.3.4 Spark運行原理 1.設計背景 許多 迭代式算法(比如機器學習、圖…

AI繪畫工具介紹常見的AI繪畫工具及其特點和應用場景的詳細介紹

AI繪畫工具是一類利用人工智能技術,特別是深度學習和神經網絡技術,來輔助或自動生成藝術作品的軟件。這些工具在藝術創作、設計、廣告制作等領域有廣泛的應用,極大地降低了創作門檻,提高了效率。以下是一些常見的AI繪畫工具及其特…

mybatis#號和$區別

在MyBatis中,#{}和${}都是用于實現動態SQL的占位符,但它們在使用場景和安全性上有明顯的區別: 用途區別: #{}主要用于傳遞接口傳輸過來的具體數據,如參數值,它可以防止SQL注入,因為MyBatis會…

硬的不行來軟的,我還破解不了你?看老哥如何Dump 你的 BootRom。

最近曾寫了一篇:【牛掰!這小哥用顯微鏡攝取芯片ROM,還原了芯片的二進制固件】,蠻多朋友說這要是采用多層堆疊,你還能這么原始的操作?自然不行,而且這也是一篇考古的文章。但是!!! 今天帶來的這篇,老哥從軟件采用了非侵入式的方式,實現了破解。從EL2 層層逆向最終獲…

實驗5 圖像分割

1. 實驗目的 ①掌握圖像分割的含義與目的; ②掌握迭代法、最大類間方差法、直方圖法等閾值分割方法; ③掌握霍夫變換、區域生長法、區域分裂與合并法的原理,并能編程實現。 2. 實驗內容 ①調用Matlab / PythonOpenCV中的相關函數&#xff…

nginx優勢以及應用場景,編譯安裝和nginx

一. Nginx是什么? 1. Nginx概述 高性能、輕量級Web服務軟件系統資源消耗低對HTTP并發連接的處理能力高單臺物理服務器可支持30,000~50,000個并發請求Nginx(發音同 “engine x”)是一個高性能的反向代理和Web服務器軟件&#xff0c…

OffscreenCanvas:Web Workers 中的畫布操作

在 Web 開發中,我們經常需要處理復雜的圖形和動畫,這些操作可能會影響頁面的性能和用戶體驗。為了解決這個問題,現代瀏覽器引入了 OffscreenCanvas 接口,它允許我們在后臺線程(Web Workers)中進行畫布操作&…

python教程---網絡爬蟲

7.1 urllib Urllib是Python內置的一個用于讀取來自Web的數據的庫。它是一個請求庫,可以用來發送HTTP請求,獲取網頁內容,支持多種HTTP方法,如GET和POST等。 使用Urllib讀取網頁內容的步驟如下: 導入Urllib庫中的reque…

Redis--18--Redis Desktop Manage下載與安裝

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄 Redis Desktop Manage1.官網下載https://redis.io/insight/ 2.安裝方法3.使用方法3.1.進入RedisDesktopManager的主界面3.2 新建連接3.3 支持操作 Redis Desktop Ma…

J021_QQ號格式校驗

一、需求描述 校驗QQ號碼是否正確。要求全部是數字,數字長度(6-20位之間),不能以0開頭。 二、代碼實現 package com.itheima.sort;public class Test {public static void main(String[] args) {System.out.println("----…

汽車尾燈(轉向燈)電路設計

即當汽車進行轉彎時,司機打開轉向燈,尾燈會根據轉向依次被點亮,經過一定的間隔后,再全部被消滅。不停地重復,直到司機關閉轉向燈。 該效果可由以下電路實現: 完整電路圖: 02—電路設計要點 延時電路的要點主要有兩個: 一、當轉向開關被按下時,LED需要逐個亮起; 二、LED被逐…

uniapp 使用cavans 生成海報

uniapp 使用cavans 生成海報 npm install qs-canvas1.創建 useCanvas.js /*** Shopro qs-canvas 繪制海報* version 1.0.0* author lidongtony* param {Object} options - 海報參數* param {Object} vm - 自定義組件實例*/ import QSCanvas from qs-canvas; import { getPos…

NVIDIA Visual Profiler啟動失敗報錯

在銀河麒麟V10安裝完NVIDIA后,想著試著運行一下NVIDIA Visual Profiler,發現報錯,如下圖。 照著提示翻閱日志文件。看見其中寫著 !ENTRY com.nvidia.viper.birt 2 0 2024-06-30 08:39:39.806 !MESSAGE Could not resolve module: com.nvidi…

ACE之Task框架

簡介 其提供了并發處理事件的能力 結構 #mermaid-svg-8gxc0Agd7gZ9tHdf {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-8gxc0Agd7gZ9tHdf .error-icon{fill:#552222;}#mermaid-svg-8gxc0Agd7gZ9tHdf .error-text{…

R學習資源及R包安裝

轉自生信師兄 生信必備技巧之R語言基礎教程 1. 學習資源 推薦書籍:R語言實戰,R數據科學等等; 這兩本書在公眾號【生信師兄】都有pdf版,有需要的可以關注公眾號【生信師兄】并回復:“R語言”,即可獲得免費…

【自然語言處理】預訓練語言模型實現與應用

預訓練語言模型實現與應用 1 任務目標 1.1 案例簡介 ? 2018年,Google提出了預訓練語言模型BERT,該模型在各種NLP任務上都取得了很好的效果。與此同時,它的使用十分方便,可以快速地對于各種NLP任務進行適配。因此,B…