作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 PyGt 的完全新手程序员。我已经阅读了有关 PyGt4 的书,但现在我们有了 PyGt5,我无法运行书中的示例。
比如这是书上的第一个例子(最简单的)大家可以看看
from PyQt5 import QtCore, QtGui
书上写着
from PyQt4 import QtCore, QtGui
但是我写PyQt5是因为我只有PyQt5
# -*- coding: utf-8 -*-
from PyQt5 import QtCore, QtGui
import sys
app = QtGui.QApplication(sys.argv)
window = QtGui.QWidget()
window.setWindowTitle("The first program in PyQt")
window.resize(300, 70)
label = QtGui.QLabel("<center>Hello, world!</center>")
btnQuit = QtGui.QPushButton("&Close window")
vbox = QtGui.QVBoxLayout()
vbox.addWidget(label)
vbox.addWidget(btnQuit)
window.setLayout(vbox)
QtCore.QObject.connect(btnQuit, QtCore.SIGNAL("clicked()"),
QtGui.qApp, QtCore.SLOT("quit()"))
window.show()
sys.exit(app.exec_())
错误:AttributeError:模块“PyQt5.QtGui”没有属性“QApplication”
我试图找到解决方案:我试图运行这段代码。不起作用。我的程序可以运行,但我无法关闭“关闭窗口”按钮
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5 import QtCore, QtGui
from PyQt5.QtCore import QObject, pyqtSignal
from PyQt5.QtWidgets import *
import sys
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("The first example in PyQt")
window.resize(300, 70)
label = QLabel("<center>Hello, world!</center>")
btnQuit = QPushButton("&Close window")
vbox = QVBoxLayout()
vbox.addWidget(label)
vbox.addWidget(btnQuit)
window.setLayout(vbox)
closed = pyqtSignal()
range_changed = pyqtSignal(int, int, name='rangeChanged')
valueChanged = pyqtSignal([int], ['QString'])
window.show()
sys.exit(app.exec_())
最佳答案
要关闭窗口,您必须将按钮点击信号连接到窗口的关闭函数
btnQuit.clicked.connect(window.close)
整个代码是:
from PyQt5.QtWidgets import *
from PyQt5.QtCore import pyqtSignal
import sys
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("The first example in PyQt")
window.resize(300, 70)
label = QLabel("<center>Hello, world!</center>")
btnQuit = QPushButton("&Close window")
vbox = QVBoxLayout()
vbox.addWidget(label)
vbox.addWidget(btnQuit)
window.setLayout(vbox)
btnQuit.clicked.connect(window.close)
window.show()
sys.exit(app.exec_())
小心你未使用的导入,你应该使用
from PyQt5 import QtWidgets
并将QApplication
替换为QtWidgets.QApplication
,将QLabel
替换为QtWidgets.QLabel
等...
请记住,信号自 PyQt5 以来已经改变了样式:Description
关于python - 如何将这段代码从 PyQt4 翻译成 PyQt5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40877516/
我是一名优秀的程序员,十分优秀!