【问题标题】:PyQt5 : How to make a button close the gui after clickingPyQt5:单击后如何使按钮关闭gui
【发布时间】:2017-03-01 08:14:21
【问题描述】:

这是我的点击按钮代码:

run_btn=QtWidgets.QPushButton("Run")
def main():
    print ('Starting Program')
run_btn.clicked.connect(main)

但是当我点击“运行”后,它只是一次又一次地打印“启动程序”,GUI窗口并没有消失:

如何让按钮打印一次并继续执行程序?

我正在使用 PyQt5 和 Python 3.4.0

【问题讨论】:

  • 从这个sn-p很难看出。您能否提供一个重现不良行为的最小工作示例?
  • @mFoxRU prntscr.com/eek8ws 这就是我的意思... gui 窗口不会消失...
  • 调用主窗口的close()方法
  • run_btn.clicked.connect(mainwindow.close).

标签: python python-3.x pyqt pyqt5 qt-signals


【解决方案1】:

假设QPushButton 在主窗口小部件内(在示例中为QWidget),我们使用close() 关闭窗口

from PyQt5 import QtWidgets
import sys

app = QtWidgets.QApplication(sys.argv)
w = QtWidgets.QWidget()

line1_edit = QtWidgets.QLineEdit()
line2_edit = QtWidgets.QLineEdit()

run_btn=QtWidgets.QPushButton("Run")
def main():
    print ('Starting Program')
    w.close()

run_btn.clicked.connect(main)

layout = QtWidgets.QVBoxLayout()
layout.addWidget(line1_edit)
layout.addWidget(line2_edit)
layout.addWidget(run_btn)
w.setLayout(layout)
w.show()
sys.exit(app.exec_())

【讨论】:

  • 你好,sys.ext(app.exec()) 是做什么的?并感谢您的帮助:)
  • 它将 Python 脚本的退出代码设置为 Qt 应用程序的退出代码。所以如果发生了不好的事情,你会得到一个非零的退出代码。 (在 Bash 中,您可以运行 echo $? 打印上一条命令的退出代码。)
猜你喜欢
  • 2013-01-17
  • 1970-01-01
  • 2013-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-13
  • 1970-01-01
相关资源
最近更新 更多