"""
這個例子中我們實現了兩個功能:菜單按鈕、帶倒計時的按鈕(賬戶注冊的時候經常會碰到)。
"""
from PyQt5.QtWidgets import QWidget, QApplication, QPushButton, QMenu
from PyQt5.QtCore import QTimer
import sys
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.resize(400,300)
self.setWindowTitle('早點畢業吧--按鈕(QPushButton)')
bt1 = QPushButton("這是什么",self)
bt1.move(50,50)
self.bt2 = QPushButton('發送驗證碼',self)
self.bt2.move(200,50)
"""
設置菜單按鈕其實很簡單,首先我們新建一個QMenu對象。這里的addSeparator(),其實就是給菜單增加一個分隔符。
"""
menu = QMenu(self)
menu.addAction('我是')
menu.addSeparator()
menu.addAction('世界上')
menu.addSeparator()
menu.addAction('最帥的')
bt1.setMenu(menu)#然后將這個菜單添加到QPushButton對象中
"""
第二個例子,我們使用到QTimer這個類,我們前面很多次都用到了這個和時間相關的類。后面會專門的講解的。
QTimer類提供重復性和單次定時器。QTimer類為定時器提供高級編程接口。要使用它,請創建一個QTimer,將其timeout()信號連接到相應的插槽,然后調用start()。從此以后,它將以固定的時間間隔發出timeout()信號。
setInterval()該屬性擁有以毫秒為單位的超時時間間隔。此屬性的默認值為0。
"""
self.count = 10
self.bt2.clicked.connect(self.Action)
self.time = QTimer(self)
self.time.setInterval(1000)
self.time.timeout.connect(self.Refresh)
self.show()
"""
我們單擊按鈕后,進行判斷若按鈕沒有被禁用,則激活定時器,同時將按鈕禁用,即禁止點擊。
"""
def Action(self):
if self.bt2.isEnabled():
self.time.start()
self.bt2.setEnabled(False)
"""
進入超時狀態后,我們開始倒計時。同時讓按鈕上的文字不斷的在變化。
當倒計時完成的時候,我們停止定時器。將按鈕恢復成正常的狀態。同時重置倒計時的值,為下次的使用做好準備。
"""
def Refresh(self):
if self.count > 0:
self.bt2.setText(str(self.count)+'秒后重發')
self.count -= 1
else:
self.time.stop()
self.bt2.setEnabled(True)
self.bt2.setText('發送驗證碼')
self.count = 10
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
到此這篇關于PyQt5 QThread倒計時的文章就介紹到這了,更多相關PyQt5 QThread倒計時內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!