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"))
不,这不是我想要的。排成一行。