PyQt5:如何在一行中一起编写clicked.connect和setStyleSheet?

时间:2018-07-15 17:53:08

标签: python-3.x pyqt5

我想问一个初学者的问题。

在下面的代码中,我尝试将import java.io.IOException; import java.io.PrintWriter; import javax.servlet.GenericServlet; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class HelloServlet extends HttpServlet{ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String user = request.getParameter("user"); response.setContentType("text/html"); PrintWriter pw = response.getWriter(); pw.println("<B>The user is: "); pw.println(user); pw.close(); } public void doPost(HttpServletRequest req,HttpServletResponse res) throws IOException { String user = req.getParameter("user"); res.setContentType("text/html"); PrintWriter pw = res.getWriter(); pw.println("<B>The user is: "); pw.println(user); pw.close(); } } clicked.connect写在一行中。但这不起作用。有人可以教我如何在一个行中写它们吗?

setStyleSheet

谢谢!

2 个答案:

答案 0 :(得分:1)

使用部分:

lapply(mget(ls()), class)
#$mydata
#[1] "data.frame"
# 
#$mylist
#[1] "list"
#
#$mymatrix
#[1] "matrix"

使用lambda:

from functools import partial

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

答案 1 :(得分:0)

尝试一下:

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_())

enter image description here