Python 3.x PyQt5:如何将clicked.connect和setStyleSheet写在一行中?

Python 3.x PyQt5:如何将clicked.connect和setStyleSheet写在一行中?,python-3.x,pyqt5,Python 3.x,Pyqt5,我想问一个初学者的问题 在下面的代码中,我尝试在一行中编写clicked.connect和setStyleSheet。但它不起作用。有谁能教我怎么用一行写吗 self.btn = QPushButton("Click") self.btn.clicked.connect(self.btn.setStyleSheet("font: 15px")) 谢谢 试试看: import sys from PyQt5.QtCore import * from PyQt5.QtGui impor

我想问一个初学者的问题

在下面的代码中,我尝试在一行中编写
clicked.connect
setStyleSheet
。但它不起作用。有谁能教我怎么用一行写吗

self.btn = QPushButton("Click")
self.btn.clicked.connect(self.btn.setStyleSheet("font: 15px"))
谢谢

试试看:

import sys
from PyQt5.QtCore    import *
from PyQt5.QtGui     import *
from PyQt5.QtWidgets import *

class Form(QDialog):
    def __init__(self, parent=None):
        super(Form, self).__init__(parent)
        self.setWindowTitle("Button demo")
        self.setGeometry(500, 200, 280, 180)
        self.label = QLabel()
        layout = QVBoxLayout()

        self.btn1 = QPushButton("Button1")
        self.btn1.clicked.connect(lambda:self.whichbtn(self.btn1, style="font: 15px; color: red;"))
        layout.addWidget(self.btn1)

        self.btn2 = QPushButton('image')
        self.btn2.setIcon(QIcon(QPixmap("./images/python.png")))
        self.btn2.clicked.connect(lambda:self.whichbtn(self.btn2, style="font: 20px; color: green;" ))
        layout.addWidget(self.btn2)

        self.btn3 = QPushButton("setEnabled(False)")
        self.btn3.setEnabled(False)
        layout.addWidget(self.btn3)

        self.btn4 = QPushButton("&Download")
        self.btn4.setDefault(True)               
        self.btn4.clicked.connect(lambda:self.whichbtn(self.btn4, style="font: 10px; color: blue;"))
        layout.addWidget(self.btn4)

        layout.addWidget(self.label) 
        self.setLayout(layout)         

    def whichbtn(self, btn, style):
        btn.setStyleSheet(style)
        self.label.setStyleSheet(style)
        self.label.setText(style)
        if btn.text() == "Button1":
            self.btn2.setStyleSheet("")
            self.btn4.setStyleSheet("")
        elif btn.text() == "image":
            self.btn1.setStyleSheet("")
            self.btn4.setStyleSheet("")
        else:
            self.btn1.setStyleSheet("")
            self.btn2.setStyleSheet("")

if __name__ == '__main__':
    app = QApplication(sys.argv)
    btnDemo = Form()
    btnDemo.show()
    sys.exit(app.exec_())
使用部分:

from functools import partial

btn.clicked.connect(partial(btn.setStyleSheet, "font: 15px"))
使用lambda:

btn.clicked.connect(lambda : btn.setStyleSheet("font: 15px"))

不,这不是我想要的。排成一行。