在QMainWindow中,只能设置一个QWidget作为中心部件,因此如果您尝试将两个QWidget对象都设置为中心部件,则只有最后一个被设置的QWidget会显示在屏幕上。这是由于Qt框架的设计决定的。
如果您需要在QMainWindow中同时显示两个QWidget对象,则可以考虑使用布局管理器。通过将多个QWidget添加到布局管理器中,您可以轻松地控制它们之间的位置和大小,并使它们相互重叠或并列显示。以下是一个示例代码片段:
# 获取主窗口对象
main_window = QMainWindow()
# 创建两个 QWidget 对象
widget1 = QWidget()
widget2 = QWidget()
# 创建 QVBoxLayout 布局管理器,并将 widget1 和 widget2 添加到其中
layout = QVBoxLayout()
layout.addWidget(widget1)
layout.addWidget(widget2)
# 将 QVBoxLayout 设置为中心部件
central_widget = QWidget()
central_widget.setLayout(layout)
main_window.setCentralWidget(central_widget)
# 显示窗口
main_window.show()
在上面的代码片段中,我们首先创建了两个QWidget对象(widget1
和widget2
),然后将它们添加到一个QVBoxLayout布局管理器中。接下来,我们将这个布局管理器设置为一个新的QWidget对象(central_widget
) 的布局,并将其设置为主窗口(main_window)的中心部件。最后,我们调用show()
方法来显示窗口。
注意,在上面的示例代码中,我们仅创建了一个中心部件,但是该中心部件包含了两个QWidget对象。因此,如果您需要在QMainWindow中同时显示多个QWidget对象,则应该考虑使用布局管理器来组织它们的位置和大小。