我想问一个初学者的问题。
在下面的代码中,我尝试在一行中编写clicked.connect
和setStyleSheet
。但它不起作用。有没有人可以教我如何用ONE行编写它们?
self.btn = QPushButton("Click")
self.btn.clicked.connect(self.btn.setStyleSheet("font: 15px"))
谢谢!
发布于 2018-07-16 04:07:04
使用部分:
from functools import partial
btn.clicked.connect(partial(btn.setStyleSheet, "font: 15px"))
使用lambda:
btn.clicked.connect(lambda : btn.setStyleSheet("font: 15px"))
发布于 2018-07-16 03:06:03
试试看:
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_())
https://stackoverflow.com/questions/51350752
复制相似问题