溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python+Pyqt實(shí)現(xiàn)簡(jiǎn)單GUI電子時(shí)鐘

發(fā)布時(shí)間:2020-09-10 01:37:46 來源:腳本之家 閱讀:286 作者:王大陽(yáng)_ 欄目:開發(fā)技術(shù)

本文實(shí)例為大家分享了Python+Pyqt實(shí)現(xiàn)簡(jiǎn)單GUI電子時(shí)鐘的具體代碼,供大家參考,具體內(nèi)容如下

突發(fā)奇想想用GUI做一個(gè)簡(jiǎn)單的電子時(shí)鐘界面,利用pyqt模塊也很方便,代碼如下:

from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import QWidget,QApplication,QLCDNumber,QVBoxLayout,QMessageBox,QPushButton
import sys
import time

class MyTime(QWidget):
  def __init__(self):
    super().__init__()
    self.initUI()
    self.init_timer()
    #UI界面搭建
  def update_time(self):
    self.lcd.display(time.strftime('%X', time.localtime()))

  def init_timer(self):
    self.timer=QTimer()
    self.timer.setInterval(1000)#設(shè)置定時(shí)器 1S觸發(fā)一次
    self.timer.start()#啟動(dòng)定時(shí)器
    self.timer.timeout.connect(self.update_time)

  def initUI(self):
    self.resize(400,200)
    self.setWindowTitle("創(chuàng)意時(shí)鐘")###名稱
    self.setWindowIcon(QIcon('xiaomayun.jpg'))#圖標(biāo)

    #初始化 調(diào)色板
    self.pl=QPalette()
    self.pl.setColor(QPalette.Background,Qt.darkYellow)
    self.setAutoFillBackground(True)
    self.setPalette(self.pl)#設(shè)置頂層布局

    self.lcd=QLCDNumber() #初始化lcd
    self.lcd.setDigitCount(10)#設(shè)置數(shù)字個(gè)數(shù)
    self.lcd.setMode(QLCDNumber.Dec)#數(shù)字十進(jìn)制
    self.lcd.setSegmentStyle(QLCDNumber.Flat)#平面模式
    self.lcd.display(time.strftime('%X',time.localtime()))

    ##初始化盒子布局
    self.box_layout=QVBoxLayout()
    self.box_layout.addWidget(self.lcd)#添加LCD組件

    self.box_layout.setAlignment(Qt.AlignCenter)#設(shè)置組件在布局中間
    self.setLayout(self.box_layout)#設(shè)置窗體布局

    self.btn = QPushButton('Button', self)##創(chuàng)建按鈕 測(cè)試用
    self.btn.setToolTip('This is a <b>QPushButton</b> widget')
    self.btn.resize(self.btn.sizeHint())
    self.btn.move(50, 50)
    self.btn.clicked.connect(self.on_click)
    self.box_layout.addWidget(self.btn)
    # btn.move(50, 50)

    self.qbtn = QPushButton('Quit', self)
    self.qbtn.clicked.connect(QCoreApplication.instance().quit)
    self.qbtn.resize(self.qbtn.sizeHint())
    self.qbtn.move(300, 150)

    self.show()


  """創(chuàng)建鼠標(biāo)點(diǎn)擊事件"""
  def on_click(self):
    print("PyQt5 button click")


  def closeEvent(self, event):
    reply = QMessageBox.question(self, 'Message',
                   "Are you sure to quit?", QMessageBox.Yes |
                   QMessageBox.No, QMessageBox.No)
    # 第一個(gè)字符串的內(nèi)容被顯示在標(biāo)題欄上。第二個(gè)字符串是對(duì)話框上顯示的文本。第三個(gè)參數(shù)指定了顯示在對(duì)話框上的按鈕集合。最后一個(gè)參數(shù)是默認(rèn)選中的按鈕。
    if reply == QMessageBox.Yes:
      event.accept()
    else:
      event.ignore()


if __name__ == '__main__':
  app=QApplication(sys.argv)
  mt=MyTime()
  app.exec_()

代碼演示如下:

Python+Pyqt實(shí)現(xiàn)簡(jiǎn)單GUI電子時(shí)鐘

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI