pyqt5學習(四)事件和訊號

2021-08-04 21:56:21 字數 3174 閱讀 6086

顧名思義:事件就是執行的東西,訊號就和觸發類似吧,是一種動作

qlcdnumber類:類似於qlable是一種顯示標籤,一般好像多用於顯示時間

qslider類:滑動條類

qtcore:包含了核心的非gui的功能。主要和時間、檔案與資料夾、各種資料、流、urls、mime類檔案、程序與執行緒一起使用。

[python]view plain

copy

# -*- coding=utf-8 -*-

from

pyqt5.qtwidgets 

import

from

pyqt5.qtcore 

import

qt  

import

sys  

class

example(qwidget):  

def__init__(

self

):  

super().__init__()  

self

.initui()  

definitui(

self

):  

lcd = qlcdnumber(self

)#數字

sld = qslider(qt.horizontal,self

) #水平拖動條

vbox = qvboxlayout() #建立乙個垂直布局

vbox.addwidget(lcd) #加入布局

vbox.addwidget(sld)  

self

.setlayout(vbox) 

#固定布局

sld.valuechanged.connect(lcd.display)#將水平拖動條的變化和數字連線起來

self

.setgeometry(

300,

300,

300,

300)  

self

.setwindowtitle(u

'宋存最美'

)  self

.show()  

if__name__ == 

'__main__'

:  ex = example()  

預覽圖:

2.重構事件處理器

[python]view plain

copy

# -*- coding: utf-8 -*-

import

sys  

from

pyqt5.qtcore 

import

qt  

from

pyqt5.qtwidgets 

import

class

example(qwidget):  

def__init__(

self

):  

super().__init__()  

self

.initui()  

definitui(

self

):  

self

.setgeometry(

300, 

300, 

250, 

150)  

self

.setwindowtitle(

'event handler'

)  self

.show()  

defkeypressevent(

self

, e):

#接受乙個事件e

ife.key() == qt.key_escape: 

#如果e的鍵值為esc,則關閉

self

.close()  

if__name__ == 

'__main__'

:  ex = example()  

3.事件傳送

[python]view plain

copy

# -*- coding: utf-8 -*-

import

sys  

from

pyqt5.qtwidgets 

import

class

example(qmainwindow):  

def__init__(

self

):  

super().__init__()  

self

.initui()  

definitui(

self

):  

btn1 = qpushbutton('button1'

,self

)  #建立self

btn1.move(30

, 50

)  btn2 = qpushbutton('button2'

,self

)  btn2.move(150

, 50

)  btn1.clicked.connect(self

.buttonclicked)  

btn2.clicked.connect(self

.buttonclicked)  

self

.statusbar()  

self

.setgeometry(

300,

300,

300,

300)  

self

.setwindowtitle(

'event sender'

)  self

.show()  

defbuttonclicked(

self

):  

sender = self

.sender()  

self

.statusbar().showmessage(sender.text() + 

'was pressed '

)  if

__name__ == 

'__main__'

:  ex = example()  

PyQt5教程 四 事件與訊號

在這部分教程中我們將 在程式內部發生的事件與訊號。在事件模型中有三個參與者 事件源 事件 物件 事件接收者 事件源是狀態發生變化的物件。它會生成事件。事件 物件 封裝了事件源中狀態的變動。事件接收者是要通知的物件。事件源物件將事件處理的工作交給事件接收者。pyqt5有乙個獨特的signal slot...

學習PyQt5(三) PyQt5的訊號和槽

我 如圖所示,我們建立乙個按鈕及乙個瀏覽器。什麼是訊號?比如按鈕的單擊,雙擊,按下,釋放等,都可以認為是乙個訊號 什麼是槽?對應的訊號,做出什麼應對,這要乙個應對在乙個函式中,我們可以認為這就是乙個訊號 槽關係 在qt designer中點選工具欄 注意不是工具盒 中的這個圖示 點選這個圖示後,就進...

pyqt5 訊號與槽

描述self.obj.destroyed.connect destroy cao 觸發後會執行槽函式,並給槽函式返回釋放物件 self.obj.blocksignals true 臨時打斷訊號 self.obj.objectnamechanged.disconnect 斷開訊號與槽的連線 self....