PyQt4 용으로 작성된 Mark Summerfield의 Rapid GUI 프로그래밍 서적을 사용 중이며 PyQt5를 사용 중입니다. 어떤 것은 달라야합니다.PyQt5 setLayout 함수로 인해 프로그램이 중단됩니까?
아무도 왜 우분투 13.04를 실행하는 제 리눅스 컴퓨터에서 실패하고 있는지 알 수 있습니까? Mint 15에서 실행되지만 때때로 세그멘테이션 오류로 종료됩니다. 필자는 PyQt4와 PyQt5의 차이점과 관련이 있다고 생각하며 qt-project.org 웹 사이트에서 C++ 구현을 조사했습니다. 지금까지 QVBoxLayout은 QDialog에서 상속 받았으며 setLayout 함수가 있다는 것을 알 수 있습니다. 그러나 _ _ 함수의 마지막 줄을 주석 처리하면 충돌없이 프로그램을 실행할 수 있지만 QDialog 상자에 위젯을 추가하지 않아도됩니다.
(python3:9896): Gtk-CRITICAL **: IA__gtk_widget_style_get: assertion `GTK_IS_WIDGET (widget)' failed
다음
가 나는 프로그램을 죽일 때까지 반복 다음 블록 뒤에 :
QXcbShmImage: shmget() failed (22) for size -524284 (65535x65535)
QWidget::paintEngine: Should no longer be called
QPainter::begin: Paint device returned engine == 0, type: 1
QWidget::paintEngine: Should no longer be called
QPainter::begin: Paint device returned engine == 0, type: 1
QPainter::translate: Painter not active
QPainter::save: Painter not active
QPainter::setClipRect: Painter not active
QPainter::pen: Painter not active
QPainter::setPen: Painter not active
QPainter::pen: Painter not active
QPainter::setPen: Painter not active
QPainter::restore: Unbalanced save/restore
QWidget::paintEngine: Should no longer be called
QPainter::begin: Paint device returned engine == 0, type: 1
QPainter::setClipRect: Painter not active
[etc, etc, etc...]
을
import sys
import PyQt5.QtCore
import PyQt5.QtGui
import PyQt5.QtWidgets
class Form(PyQt5.QtWidgets.QDialog):
def __init__(self, parent=None):
super(Form, self).__init__(parent)
self.browser = PyQt5.QtWidgets.QTextBrowser()
self.lineEdit = PyQt5.QtWidgets.QLineEdit("default statement here")
self.lineEdit.selectAll()
layout = PyQt5.QtWidgets.QVBoxLayout()
layout.addWidget(self.browser)
layout.addWidget(self.lineEdit)
self.setLayout(layout) # <--- program seems to crash here
app = PyQt5.QtWidgets.QApplication(sys.argv)
form = Form()
form.show()
app.exec_()
는이 같은 초기 오류 메시지가 반복 약 10 배를 얻을 수
이 솔루션처럼 여기 보인다 : http://stackoverflow.com/questions/14606396/gtk-critical-ia-gtk-widget-style-
이 버그를 참조하십시오 get-assertion-gtk-is-widget-widget-fa – ADB
우분투에서 GTKStyle의 버그 인 것 같습니다. – ADB