首页 > 解决方案 > PyQt5 按钮单击不使用功能

问题描述

当我单击带有以下源代码的按钮时,我正在尝试使用功能:

from PySide2.QtWidgets import QApplication

from ui_interface import *
from Custom_Widgets.Widgets import *
from PyQt5.QtGui import QIcon

# from PyQt5.QtWidgets import *
from Custom_Widgets.Widgets import QCustomSlideMenu

import sys
class MainWindow(QMainWindow):
    def __init__(self,parent = None):
        QMainWindow.__init__(self)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        ########################################################################
        # APPLY JSON STYLESHEET
        ########################################################################
        # self = QMainWindow class
        # self.ui = Ui_MainWindow / user interface class
        loadJsonStyle(self, self.ui)
        ########################################################################
        self.show()
        self.ui.pushButton_2.clicked.connect(self.my_text())
    @pyqtSlot()
    def on_button1(self):
        print("Button #1")
    def my_text(self):
        index = 1
        print("{0} button clicked".format(index))
if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = MainWindow()
    # app.setWindowIcon(QIcon(':/icons/home.ico'))
    window.show()
    sys.exit(app.exec_())

当我这样使用时:

self.ui.pushButton_2.clicked.connect(self.my_text())

当我单击按钮时,不显示任何内容。

但如果我这样使用:

self.ui.pushButton_2.clicked.connect(lambda: self.my_text())

有用。

而且当我这样使用时:

self.ui.pushButton_2.clicked.connect(self.on_button1())

有用。但我不明白为什么第一步不起作用?

标签: pythonpyqt5

解决方案


尝试这个

from PyQt5.QtWidgets import * 
from PyQt5.QtGui import * 
from PyQt5.QtCore import * 
import sys
  
  
class Window(QMainWindow):
    def __init__(self):
        super().__init__()
  
        # setting title
        self.setWindowTitle("Python ")
  
        # setting geometry
        self.setGeometry(100, 100, 600, 400)
  
        # calling method
        self.UiComponents()
  
        # showing all the widgets
        self.show()
  
    # method for widgets
    def UiComponents(self):
  
        # creating a push button
        button = QPushButton("CLICK", self)
  
        # setting geometry of button
        button.setGeometry(200, 150, 100, 30)
  
        # adding action to a button
        button.clicked.connect(self.clickme)
  
    # action method
    def clickme(self):
        print("pressed")
  
# create pyqt5 app
App = QApplication(sys.argv)
  
# create the instance of our Window
window = Window()
  
# start the app
sys.exit(App.exec())

你在找这个吗???


推荐阅读