from pyqt5.qtwidgets import (qwidget
, qvboxlayout , qhboxlayout,
qlineedit, qpushbutton)
from pyqt5.qtcore import pyqtsignal
from pyqt5 import qtcore
##############################################
# 參考大丸子的部落格
class loginview(qwidget):
## 登入介面時傳送 關閉訊號
quitsignal = pyqtsignal()
loginsignal = pyqtsignal(list)
# server端沒有響應
openfailuresignal = pyqtsignal()
def __init__(self, parent=none):
super(loginview, self).__init__(parent)
self.ids_receive =
self._init_ui()
def _init_ui(self):
layout_button = qhboxlayout()
layout_input = qhboxlayout()
self.input_name = qlineedit()
self.input_pass = qlineedit()
button_login = qpushbutton("登入")
button_login.setobjectname("ok_button")
button_quit = qpushbutton("取消")
button_hello = qpushbutton("hello")
self.button_hello = button_hello
button_hello.setobjectname("hello_button")
#button_login.clicked.connect(self.do_login)
#button_quit.clicked.connect(self.loginquit)
layout_button.addwidget(button_login)
layout_button.addwidget(button_quit)
layout_input.addwidget(self.input_name)
layout_input.addwidget(self.input_pass)
layout_input.addwidget(self.button_hello)
layout_main = qvboxlayout()
self.setlayout(layout_main)
layout_main.addlayout(layout_button)
layout_main.addlayout(layout_input)
# qmetaobject. connectslotsbyname(qobject)
# ,如 button_hello.setobjectname("hello_button")
# 官網解釋用法:
qtcore.qmetaobject.connectslotsbyname(self)
def loginquit(self):
print ("cencel")
#試試登出掉該裝飾器
# 有點奇怪啊,一旦注釋掉裝飾器,列印會執行兩次啊
#qtcore.pyqtslot(str, str)可以攜帶引數的
@qtcore.pyqtslot()
def on_hello_button_clicked(self):
print('on_pbhello_clicked')
@qtcore.pyqtslot()
def on_ok_button_clicked(self):
print ("ok")
self.loginsignal.emit([1, 2])
def do_login(self):
#獲取使用者和密碼文字框的內容
u_name = self.input_name.text()
u_pass = self.input_pass.text()
print('u_name', u_name, u_pass)
if __name__ == '__main__':
import sys
login = loginview()
login.show()
PyQt的signal 和 solit的補充
from pyqt5.qtwidgets import qwidget qvboxlayout qhboxlayout,qlineedit,qpushbutton from pyqt5.qtcore import pyqtsignal from pyqt5 import qtcore 參考大丸子的部...
如何使用好pyqt的signal和slot
如果你是使用pyqt 4.5之後的版本,除了傳統的signal slot的連線方式外,你還多了一種比較符合python樣式的寫法。這種寫法是透過下面兩種新的pyqt物件來達成 正如其名,pyqtsingal是用來定義signal,而 pyqtslot 則是用於slot。首先,我們來了解如何利用pyq...
Pyqt 訊號(signal)和槽函式(slot)
訊號 signal 就是在特定情況下被發射 emit 的一種通告 槽函式 slot 對訊號 signal 相應的函式,接收某個物件傳送的訊號,執行某種操作。槽函式和普通函式的區別就是可與 訊號 關聯。在qt中,每乙個qobject物件和pyqt中所有繼承自qwidget的控制項 這些都是qobjec...