我正在python和pyqt4中为我的覆盆子pi制作一个程序。 现在我正在我的覆盆子上启动程序,它会出错并且它不会显示我所做的按钮。 我已设计成qtdesinger,它显示窗口,但没有任何内容。
这是我的错误:
X Error: BadAccess (attempt to access private resource denied) 10
Extension: 129 (MIT-SHM)
Minor opcode: 1 (X_ShmAttach)
Resource id: 0x2800001
X Error: BadShmSeg (invalid shared segment parameter) 128
Extension: 129 (MIT-SHM)
Minor opcode: 5 (X_ShmCreatePixmap)
Resource id: 0x280000a
X Error: BadDrawable (invalid Pixmap or Window parameter) 9
Major opcode: 62 (X_CopyArea)
Resource id: 0x280000b
X Error: BadDrawable (invalid Pixmap or Window parameter) 9
Major opcode: 62 (X_CopyArea)
Resource id: 0x280000b
X Error: BadDrawable (invalid Pixmap or Window parameter) 9
Major opcode: 62 (X_CopyArea)
Resource id: 0x280000b
这是来自qtdesigner的我的python代码:
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
_fromUtf8 = lambda s: s
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName(_fromUtf8("Form"))
Form.resize(480, 640)
self.pushButton = QtGui.QPushButton(Form)
self.pushButton.setGeometry(QtCore.QRect(120, 140, 83, 24))
self.pushButton.setObjectName(_fromUtf8("pushButton"))
self.toolButton = QtGui.QToolButton(Form)
self.toolButton.setGeometry(QtCore.QRect(350, 250, 27, 20))
self.toolButton.setObjectName(_fromUtf8("toolButton"))
self.buttonBox = QtGui.QDialogButtonBox(Form)
self.buttonBox.setGeometry(QtCore.QRect(150, 280, 156, 24))
self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDia$
self.buttonBox.setObjectName(_fromUtf8("buttonBox"))
self.commandLinkButton = QtGui.QCommandLinkButton(Form)
self.commandLinkButton.setGeometry(QtCore.QRect(160, 230, 168, 41))
self.commandLinkButton.setObjectName(_fromUtf8("commandLinkButton"))
self.checkBox = QtGui.QCheckBox(Form)
self.checkBox.setGeometry(QtCore.QRect(130, 380, 84, 19))
self.checkBox.setObjectName(_fromUtf8("checkBox"))
self.toolButton_2 = QtGui.QToolButton(Form)
self.toolButton_2.setGeometry(QtCore.QRect(160, 470, 27, 20))
self.toolButton_2.setObjectName(_fromUtf8("toolButton_2"))
self.listView = QtGui.QListView(Form)
self.listView.setGeometry(QtCore.QRect(60, 460, 256, 192))
self.listView.setObjectName(_fromUtf8("listView"))
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
Form.setWindowTitle(QtGui.QApplication.translate("Form", "Form", None, QtG$
self.pushButton.setText(QtGui.QApplication.translate("Form", "Lamp", None,$
self.toolButton.setText(QtGui.QApplication.translate("Form", "...", None, $
self.commandLinkButton.setText(QtGui.QApplication.translate("Form", "Comma$
self.checkBox.setText(QtGui.QApplication.translate("Form", "CheckBox", Non$
self.toolButton_2.setText(QtGui.QApplication.translate("Form", "...", None$
这是我的文件显示窗口: 导入系统 来自PyQt4导入QtCore,QtGui 来自test import Ui_Widget
class StartQT4(QtGui.QMainWindow):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.ui = Ui_Widget()
self.ui.setupUi(self)
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
myapp = StartQT4()
myapp.show()
sys.exit(app.exec_())
对我来说有没有解决方案? 我搜索了错误,但没有找到我的问题的答案。
...谢谢
答案 0 :(得分:1)
我对python应用程序有同样的问题。
我找到了以下内容:
这开始发生了python更新,其中包括较新版本的pyqt和libqt。
作为一个侧面测试,我可以完美地运行“眼睛”和“火狐”(不导出显示变量)
当使用“/ unix”MIT-MAGIC-COOKIE-1时,pyqt试图“填写”X11窗口时出现问题......使用“hostname:instance”MIT时,相同的例程工作正常MAGIC-COOKIE-1
答案 1 :(得分:1)
我发现Unetbootin存在类似的问题。它需要root权限,并且当从用户启动X-server时,例如使用startx
命令,它会产生相同的错误。
解决方案是使用显示管理器,如lxdm,gdm等。
我的猜测是QT无法提升访问某些共享内存的权限,因为X使用 user 权限运行。使用桌面管理器,它以root权限运行。