python - 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())
有用。但我不明白为什么第一步不起作用?
解决方案
尝试这个
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())
你在找这个吗???
推荐阅读
- python - python中的冰雹程序
- python - 是否可以在日期时间模块中制作计数器?
- python - TypeError: 'Tk' object is not callable 为什么我会收到此错误消息
- angular - 指向组件的动态菜单链接
- c++ - C ++中的双重析构函数调用
- css - 文本元素不适合 div 父级 [Oxygen Builder / Wordpress]
- python - 在 conda 中复制 colab env
- c++ - 如何使用自己的 operator= 函数将“X”类中的 operator= 调用到“Y”类中?
- python - python-docx包无法读取图像文件
- css - 在此上下文中,XHTML 元素不允许作为 XHTML 元素主体的子元素