Python3 PyQt5學習筆記2 訊號與槽

2021-10-07 01:53:56 字數 3046 閱讀 4365

(上一章貼的gitbook的pyqt5教程今天發現打不開了,不過發現相同的文字出現的地方挺多……那這裡再貼乙個pyqt5中文教程)

(第乙個程式為完整程式,後面的程式視情況擷取片段)

我們編寫乙個程式,通過下方的滑塊控制lcd數字的顯示

import sys

from pyqt5.qtcore import qt

from pyqt5.qtwidgets import

(qwidget, qlcdnumber, qslider,

class

example

(qwidget)

:def

__init__

(self)

:super()

.__init__(

)

self.initui(

)def

initui

(self)

: lcd = qlcdnumber(self)

sld = qslider(qt.horizontal, self)

vbox = qvboxlayout(

) vbox.addwidget(lcd)

vbox.addwidget(sld)

self.setlayout(vbox)

# signal.connect(slot)

sld.valuechanged.connect(lcd.display)

self.setgeometry(

300,

300,

250,

150)

self.setwindowtitle(

'signal & slot'

) self.show(

)if __name__ ==

'__main__'

:

ex = example())

)

在這裡我們將滾動條的valuechanged訊號連線到lcd的display槽

定義了鍵盤事件,按下esc鍵關閉程式

# 對齊initui()

# signal

defkeypressevent

(self, e)

:if e.key(

)== qt.key_escape:

self.close(

)

在狀態列列印出按下按鈕的資訊

(使用qmainwindow)

import sys  

class

example

(qmainwindow)

:def

__init__

(self)

:super()

.__init__(

)

self.initui(

)def

initui

(self)

:

btn1 = qpushbutton(

"button 1"

, self)

btn1.move(30,

50)btn2 = qpushbutton(

"button 2"

, self)

btn2.move(

150,50)

btn1.clicked.connect(self.buttonclicked)

btn2.clicked.connect(self.buttonclicked)

self.statusbar(

)

self.setgeometry(

300,

300,

290,

150)

self.setwindowtitle(

'event sender'

) self.show(

)# 定義按鈕響應事件

# slot

defbuttonclicked

(self)

:# 判斷按下的是哪個按鈕

sender = self.sender(

) self.statusbar(

).showmessage(sender.text()+

' was pressed'

)if __name__ ==

'__main__'

:

ex = example())

)

import sys

from pyqt5.qtcore import pyqtsignal, qobject

class

communicate

(qobject)

:# 把訊號作為物件封裝起來

)class

example

(qmainwindow)

:def

__init__

(self)

:super()

.__init__(

)

self.initui(

)def

initui

(self)

:# 把communicate作為物件定義進去

self.c = communicate(

)# 為該訊號連線slot

self.setgeometry(

300,

300,

290,

150)

self.setwindowtitle(

'emit signal'

) self.show(

)def

mousepressevent

(self, event):)

if __name__ ==

'__main__'

:

ex = example())

)

python3 pyqt5 和eric5配置教程

1 預備pc環境 2 預備安裝程式 3 安裝配置步驟 3 1 安裝pyhon3.2 3 2 安裝pyqt4 3 3 安裝eric5 4 製作乙個demo 4 1 用eric建立demo專案 4 2 在demo專案中新增forms,用pyqt4設計 4 3 返回到eric介面後,設計程式。本次安裝配置...

樹莓派python3 pyqt5環境搭建

樹莓派型號 系統 raspbian gnu linux 9.6 stretch release 9.6 codename stretch 使用命令lsb release a 察看 說明 樹莓派本身自帶 python2 和python3 兩個版本,python 環境不用安裝。把 python 的鏈結刪...

pyqt5切換python版本 pyqt5介面切換

主要的思路就是建立兩個frame 如果有兩個以上同理 使用setvisible 函式顯示或者隱藏frame 引數是bool值 import sys from pyqt5.qtwidgets import from pyqt5.qtcore import from pyqt5.qtgui import...