我正在将我的应用程序从pyqt4迁移到pyqt5。 除了这个问题我一直在应用程序上发布:
$ python3 /tmp/loading.py
qt.qpa.xcb: failed to initialize XRandr
qt.qpa.xcb: X server does not support XInput 2
我的应用程序有一个加载屏幕,当它加载一些内容时我会显示:
^{pr2}$在pyqt4中它工作得很好,我看到这个简单的加载窗口,然后它就关闭了。 另一方面,在pyqt5中,我在shell中得到了上面的错误,窗口永远不会显示出来。在
编辑1
app = QtWidgets.QApplication(sys.argv)
loading_screen = LoadingScreen()
loading_screen.show()
foo()
loading_screen.close()
sys.exit(app.exec_())
编辑2
import sys
import time
from PyQt4 import QtGui, QtCore
from drivertest.ui.gui.resources.resources import Images
class Form(QtGui.QDialog):
""" Just a simple dialog with a couple of widgets
"""
def __init__(self, parent=None):
super(Form, self).__init__(parent)
self.browser = QtGui.QTextBrowser()
self.setWindowTitle('Just a dialog')
self.lineedit = QtGui.QLineEdit("Write something and press Enter")
self.lineedit.selectAll()
layout = QtGui.QVBoxLayout()
layout.addWidget(self.browser)
layout.addWidget(self.lineedit)
self.setLayout(layout)
self.lineedit.setFocus()
def foo(self):
for _ in range(100000000):
pass
class LoadingScreen(QtGui.QMainWindow):
def __init__(self):
super(LoadingScreen, self).__init__()
self.setWindowTitle('Loading DriVerTest...')
self.setWindowIcon(QtGui.QIcon(Images.LOGO))
self.setMaximumSize(600, 338)
self.setMinimumSize(600, 338)
self.setWindowFlags(QtCore.Qt.FramelessWindowHint)
self.palette = QtGui.QPalette()
pixmap = QtGui.QPixmap(Images.LOADING_BACKGROUND)
brush = QtGui.QBrush(pixmap.scaled(self.size(), QtCore.Qt.IgnoreAspectRatio))
self.palette.setBrush(QtGui.QPalette.Background, brush)
self.setPalette(self.palette)
center = QtGui.QDesktopWidget().availableGeometry().center()
self.move(center)
app = QtGui.QApplication(sys.argv)
loading_screen = LoadingScreen()
loading_screen.show()
g = Form()
g.foo()
loading_screen.close()
g.show()
sys.exit(app.exec_())
目前没有回答
相关问题 更多 >
编程相关推荐