- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我一直在做大量的研究,但无法提出任何描述 PyQt4 中这一特定代码行的内容。像许多其他学习 PyQt 的人一样,我一直在关注 zetcode 的 PyQt4 tutorial .我仍然是 Python 的初学者,但我正在尽最大努力理解这里的每一行代码,但有一件事让我感到困惑:
import sys
from PyQt4 import QtGui, QtCore
class Example(QtGui.QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
qbtn = QtGui.QPushButton('Quit', self)
qbtn.clicked.connect(QtCore.QCoreApplication.instance().quit)
qbtn.resize(qbtn.sizeHint())
qbtn.move(50, 50)
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('Quit button')
self.show()
def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
除了这一行我什么都懂:
qbtn.clicked.connect(QtCore.QCoreApplication.instance().quit)
有人可以解释这里到底发生了什么,特别是 instance().quit
吗?我知道它显然退出了程序,我只是不明白代码实际上在做什么以及为什么。我能够挖掘到的唯一信息是 instance() “返回指向应用程序的 QCoreApplication(或 QApplication)实例的指针”,但这并不能真正帮助我理解(也许我只是没有经验够了,我不知道)。
另外,上面这行代码和下面这行代码在功能上有区别吗:
qbtn.clicked.connect(self.close)
我找到了 this thread哪种方式涉及整个主题,但提到 self.close 作为可能的替代方案的唯一回应被否决了,没有任何解释。非常感谢任何帮助或指导,谢谢!
最佳答案
qbtn.clicked
是按钮发出的信号。QCoreApplication.instance()
是主要的应用程序对象。所以它将按钮信号连接到应用程序的退出槽。
在您的第二个示例中,按钮只会关闭拥有该按钮的窗口。如果应用程序有多个窗口,或者在最后一个窗口关闭时没有自动退出,它仍会运行。
关于python - PyQt4:QtCore.QCoreApplication.instance().quit 和 self.close 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37869599/
在Mac上编译QT工程,遇到如下错误 ld: file not found: QtCore.framework/Versions/4/QtCore for architecture x86_64 这不
我正在用 C++ 编写多线程程序,并计划使用 QThread .问题是当我尝试 #include ...我得到一个错误... Cannot find include file QtCore. 什么给
我正在尝试从源代码构建一个包,./configure 告诉我缺少 QtCore 包。一直在谷歌搜索并尝试 apt-get 但没有成功。请帮忙。 最佳答案 它叫做 libqt4-core在 Debian
我正在尝试将 Qt 用作库(类似于 this ),因为我想在一些当前非 Qt 应用程序中重用 Qt 类,并在共享库中作为跨平台胶水。一切都是非 GUI 的。 DirectConnection 可以轻松
我正在尝试构建两个库:一个是静态的,一个是共享的。问题出在静态库上。我有以下文件夹: src/ db/ dbal.h dbal.pro dll/ Distributio
是否有可与 PyQT4 一起使用的信号列表,或者至少有一个与lostFocus()相反的信号列表? 最佳答案 “QWidget”生成了一个 QFocusEvent 事件,但不是信号。然而,有一个方便的
在我的项目中,QtCreator 让我可以: #include // include all core #include 但不是 #include 我有一个 .pro 文件,其中有 QT +=
我已经从源代码构建了 PyQt4,一切都很顺利,直到我尝试使用 QtCore 中的一些类和属性。由于某种原因,QtCore 缺少许多本应存在的功能和数据。例如,从 PyQt4.QtCore impor
我正在尝试使用 QtCore.Signal 将类的新实例发送到对象的父级。我正在尝试做的事情如下,但失败了: NameError: name 'myClass' is not defined clas
我一直在尝试安装 torch,但在运行 ./install.sh 时出现以下错误 CMake Error at /usr/share/cmake-2.8/Modules/FindQt4.cmake:6
我正在尝试使用 pyinstaller 的 --onefile 选项构建我的应用程序。这是摘录。 import sys from PyQt4 import QtGui, QtCore from mod
我的项目使用 cmake 试图寻找已安装的 QT4: root@netqa1:~# which qmake /usr/bin/qmake root@netqa1:~# ls -l /usr/lib/i
我在这个 windows 7 32 位上安装了 python3.3 x86(官方 python.org 安装程序) 然后从这里为 python3.3 windows x86 安装 PyQt4-4.10
这是我的 keyPressEvent def keyPressEvent(self , e): key = e.key() if key == QtCore.Qt.Key_Escape
我正在尝试让旧的 qt 项目再次运行。我相信它是用 QT4.x 编写的,我现在正在使用 QT 5.5。 *.pro 文件看起来有点像这样: ##############################
所以我正在尝试使用 QT Creator 创建一个 dll。我去了new project -> libary -> C++ libary -> choose .它自动生成一个头文件 global前缀和
我遇到了一个类似于帖子的奇怪的 stackoverflow 崩溃: here QMutex 试图递归地 self 锁定然后导致崩溃...调用栈是这样的: ...(mor
代码: class Text(QtGui.QLabel): def __init__(self,parent): QtGui.QLabel.__init__(self,pare
我想通过具有不同参数的相同函数检查多个 QtGui.QLineEdits 中的用户输入。我尝试了 QtCore.SignalMapper。这是我在测试应用程序中的代码: self.signal
我有 Windows 8.1 机器,安装了两个 Python 3.4.4 和 3.2.2在 python 3.4.4 中一切看起来都很好 Python 3.4.2 (v3.4.2:ab2c023a94
我是一名优秀的程序员,十分优秀!