How to translate this code from PyQt4 to PyQt5
我在PYGT是一个完全的新手程序员。我读过关于PYGT4的书,但是现在我们有了PYGT5,我不能从书中运行我的示例。
例如,这是你能从书中看到的第一个例子(最简单的)。
1 | from PyQt5 import QtCore, QtGui |
但它在书里
1 | from PyQt4 import QtCore, QtGui |
号
但我写Pyqt5是因为我只有Pyqt5
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | # -*- 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"
我试图找到解决方案:我试图运行此代码。不工作。我的程序工作,但我不能关闭按钮"关闭窗口"
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 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_()) |
。
要关闭窗口,必须将按钮单击的信号连接到窗口的关闭功能。
1 | btnQuit.clicked.connect(window.close) |
整个代码将是:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 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_()) |
号
小心未使用的进口产品,您应该使用
1 | from PyQt5 import QtWidgets |
用
请记住,自从Pyqt5:description以来,信号已经改变了样式。