<p>在运行你的代码时,我的屏幕上显示了一个小部件,但是它的组件没有显示出来。与其设置QMainWindow的布局,不如让一个中心小部件(QWidget)用它的组件设置它的布局,而不是用这个小部件设置QMainWindow中央小部件。好了,现在你们都工作得很好了。在</p>
<hr/>
<p>布局有问题,因为QMainWindow的行为与其他窗口小部件不同,它有自己的布局和许多其他默认行为,中央窗口小部件是主窗口中没有显示的原因。在</p>
<pre><code>def expressionevaluator():
import sys
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWidgets import QLineEdit
from PyQt5.QtWidgets import QMainWindow
from PyQt5.QtWidgets import QPushButton
from PyQt5.QtWidgets import QTextBrowser
from PyQt5.QtWidgets import QVBoxLayout
from PyQt5.QtWidgets import QWidget
class Window(QMainWindow):
def __init__(self):
super(Window,self).__init__()
self.setGeometry(50,50,500,300)
self.setWindowTitle("PyQt Tutorial")
self.setWindowIcon = QIcon('pyqt_example2.PNG')
self.home()
def ExitForm(self):
sys.exit()
def home(self):
vbox = QVBoxLayout()
textbrowser = QTextBrowser()
lineedit = QLineEdit()
btn = QPushButton("QUIT")
central_widget = QWidget()
central_widget.setLayout(vbox)
btn.clicked.connect(self.close)
vbox.addWidget(textbrowser)
vbox.addWidget(lineedit)
vbox.addWidget(btn)
self.setCentralWidget(central_widget)
self.show()
if __name__=="__main__":
app = QApplication(sys.argv)
GUI = Window()
GUI.show()
sys.exit(app.exec_())
expressionevaluator()
</code></pre>
<p><strong>注意:</strong><em>您可以对代码的结构进行许多改进,我只是尽可能少地更改以使其正常工作,例如,不要同时导入所有模块,只导入您需要的内容,例如QIcon、QLineEdit等,而不是整个qtwidget或QtCore。。。</em></p>