class MainWidget(QWidget): def __init__(self,w): super().__init__() self.resize(2000,1000) self.setWindowTitle("电影主页") self.w = w hLayout = QHBoxLayout(self) hLayout2 = QHBoxLayout(self) vLayout = QVBoxLayout(self) windowOpenBtn = QPushButton("电影推荐",self) RCMBtnLabel = QLabel("没有喜欢的电影?点击这里试试:->",self) RCMBtnLabelFont = QFont("Arial",15) RCMBtnLabel.setFont(RCMBtnLabelFont) windowOpenBtn.setFont(RCMBtnLabelFont) TopLabel = QLabel("欢迎来到电影信息推荐系统",self) TopLabelFont = QFont("Arial",20) TopLabel.setFont(TopLabelFont) hLayout.addStretch(5) hLayout.addWidget(RCMBtnLabel,1) hLayout.addWidget(windowOpenBtn,1) hLayout2.addStretch() hLayout2.addWidget(TopLabel) hLayout2.addStretch() vLayout.addLayout(hLayout2)这段代码为什么不能使“欢迎来到电影信息推荐系统”居中顶部显示
时间: 2023-12-07 17:05:38 浏览: 79
这段代码不能使 "欢迎来到电影信息推荐系统" 居中顶部显示的原因是,您在创建 QHBoxLayout 时将 self 作为参数传递,从而将水平布局添加到了主窗口上。然后,您在创建 QVBoxLayout 时,将 self 作为参数传递,从而将垂直布局添加到了主窗口上。由于您在 QHBoxLayout 中使用了 addStretch() 方法,它会占据水平布局中的所有空间,从而使垂直布局中的部件无法居中显示。
解决这个问题的方法是,创建一个 QWidget,将其设置为主窗口的中心部件,然后将 QHBoxLayout 和 QVBoxLayout 添加到该 QWidget 上。示例如下:
```
class MainWidget(QWidget):
def __init__(self, w):
super().__init__()
self.resize(2000, 1000)
self.setWindowTitle("电影主页")
self.w = w
centerWidget = QWidget(self) # 创建一个 QWidget 作为中心部件
self.setCentralWidget(centerWidget) # 设置中心部件
hLayout = QHBoxLayout(centerWidget) # 在中心部件上创建水平布局
hLayout2 = QHBoxLayout(centerWidget) # 在中心部件上创建水平布局
vLayout = QVBoxLayout(centerWidget) # 在中心部件上创建垂直布局
windowOpenBtn = QPushButton("电影推荐", centerWidget)
RCMBtnLabel = QLabel("没有喜欢的电影?点击这里试试:->", centerWidget)
RCMBtnLabelFont = QFont("Arial", 15)
RCMBtnLabel.setFont(RCMBtnLabelFont)
windowOpenBtn.setFont(RCMBtnLabelFont)
TopLabel = QLabel("欢迎来到电影信息推荐系统", centerWidget)
TopLabelFont = QFont("Arial", 20)
TopLabel.setFont(TopLabelFont)
hLayout.addStretch(5)
hLayout.addWidget(RCMBtnLabel, 1)
hLayout.addWidget(windowOpenBtn, 1)
hLayout2.addStretch()
hLayout2.addWidget(TopLabel)
hLayout2.addStretch()
vLayout.addLayout(hLayout2)
```
在这个示例中,我们创建了一个 centerWidget,将其设置为主窗口的中心部件。然后,我们在 centerWidget 上创建了水平布局和垂直布局,并将部件添加到这些布局中。最后,我们将 QHBoxLayout 和 QVBoxLayout 添加到 centerWidget 上,以便这些布局能够居中显示。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044901.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)