我有以下骨架代码:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QToolTip, QMainWindow, QTextEdit
from PyQt5.QtGui import QIcon, QFont
from PyQt5.QtCore import Qt
class Editor(QMainWindow):
def __init__(self, parent=None):
QMainWindow.__init__(self, parent)
self.initUI()
# --------------------------------------
def initMenubar(self):
menubar = self.menuBar()
fileMenuBtn = menubar.addMenu("File")
editMenuBtn = menubar.addMenu("Edit")
viewMenuBtn = menubar.addMenu("View")
# --------------------------------------
def initToolbars(self):
self.toolbar = self.addToolBar("Options")
# Makes the next toolbar appear underneath this one
self.addToolBarBreak()
self.formatbar = self.addToolBar("Format")
# --------------------------------------
def initUI(self):
QToolTip.setFont(QFont('Monospace', 10))
self.setToolTip('<b>Proofor</b> main window')
#self.text = QTextEdit(self)
#self.setCentralWidget(self.text)
# Initialize a statusbar for the window
self.statusbar = self.statusBar()
self.initToolbars()
self.initMenubar()
self.setWindowTitle('Proofor - proof editor')
#self.setWindowIcon(QIcon('dots.png'))
#self.setGeometry(100, 100, 500, 500)
# ================================================
def main():
app = QApplication(sys.argv)
main = Editor()
main.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
如果按原样运行此代码(
python editor.py
),则一切正常。但是,如果我取消注释添加 QTextEdit
的行小部件,位于 initUI
,我收到以下警告:(python:1949): Gtk-CRITICAL **: IA__gtk_widget_style_get: assertion 'GTK_IS_WIDGET (widget)' failed
QWidget::setMinimumSize: (/Editor) The largest allowed size is (16777215,16777215)
否则会弹出的窗口不会弹出,但我仍然可以关闭应用程序。相反,如果在
main
我有 main.showMaximized()
而不是 main.show()
,我导致我的电脑崩溃。如果我没有 QTextEdit
,则不会发生这种情况小部件设置为中央小部件,否则会出现一个正常的最大化窗口。关于发生了什么的任何想法?
为后代编辑:问题发生在我的 Anaconda Python 发行版中,我安装了与 native pyqt4 冲突的 pyqt5。
最佳答案
在 python 3.4、pyqt5、ubuntu 14.04 下,您的代码运行良好。
这似乎是您安装的默认样式的问题
尝试通过运行代码来更改样式,例如
python editor.py -style windows
见 Qt-Docs QStyle
您可以通过以下方式找到可用的样式
print(QStyleFactory.keys())
从 QtWidgets 导入 QStyleFactory 后
关于python - 添加 QTextEdit 小部件作为中央小部件使主窗口不弹出,并且 showMaximize 导致计算机崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34244849/