[PyQt] 'clicked' parameter in QPushButton's constructor

Phil Thompson phil at riverbankcomputing.com
Wed May 8 17:04:13 BST 2019


On 08/05/2019 16:48, Zhao Lee wrote:
> While if I replace
> button = QPushButton("Click me",clicked=say_hello)
> with
> button = QToolButton(triggered=say_hello)
> then the slot won't be called , why ?

Because the QToolButton triggered signal doesn't do the same thing as 
the QPushButton clicked signal.

Phil

> At 2019-05-08 16:51:31, "Phil Thompson" <phil at riverbankcomputing.com> 
> wrote:
>> On 08/05/2019 09:07, Zhao Lee wrote:
>>> I can connect slot to QPushButton's clicked signal in its constructor
>>> this way
>>> button = QPushButton("Click me",clicked=say_hello)
>>> It worked ! Test example as following:
>>> 
>>> 
>>> import sys
>>> from PyQt5.QtWidgets import *
>>> def say_hello():
>>>     print("Button clicked, Hello!")
>>> # Create the Qt Application
>>> app = QApplication(sys.argv)
>>> # Create a button, connect it and show it
>>> button = QPushButton("Click me",clicked=say_hello)
>>> # button = QToolButton("Click me", clicked=say_hello)
>>> # button.clicked.connect(say_hello)
>>> button.show()
>>> # Run the main Qt loop
>>> app.exec_()
>>> 
>>> 
>>> However , there seems no parameter named 'clicked' in QPushButton's
>>> constructor as described in the doc  , what's the working mechanism
>>> behind ? How do I know which parameters I could pass to the
>>> constructor?
>> 
>> https://www.riverbankcomputing.com/static/Docs/PyQt5/signals_slots.html#connecting-signals-using-keyword-arguments
>> 
>> Phil



More information about the PyQt mailing list