QT在主页面显示子页面内容

我看网上都是用ScrollArea的方式调用子页面显示

现在写另一种方式

1、主页面添加子页面的头文件

2、定义子页面

3、在cpp文件中设置子页面的父对象为主页面

4、让子页面显示

5、设置子页面的显示位置

//例如在A页面加载B页面
//A.h文件页面
#includ "B.h"

//定义B
B b;


//A.CPP文件
b.setParent(this);//设置父对象
b.setGeometry(460,30,461,461);//设置位置
b.show();//让b页面显示

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Qt中,可以使用QStackedWidget来实现在页面上层显示页面的效果。QStackedWidget是一个窗口小部件,可以在其中添加多个窗口小部件,并显示其中的一个。 要在页面上层显示页面,可以将QStackedWidget添加到页面中,并将页面添加到QStackedWidget中。然后,可以通过在QStackedWidget中选择要显示页面来控制其在页面上层的显示。 下面是一个简单的示例代码,展示了如何使用QStackedWidget在页面上层显示页面: ```python import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QPushButton, QVBoxLayout, QLabel, QStackedWidget class MainWindow(QMainWindow): def __init__(self): super().__init__() self.stacked_widget = QStackedWidget() self.setCentralWidget(self.stacked_widget) # 添加页面 self.page1 = QWidget() self.label1 = QLabel("这是第一页") layout1 = QVBoxLayout() layout1.addWidget(self.label1) self.page1.setLayout(layout1) self.stacked_widget.addWidget(self.page1) self.page2 = QWidget() self.label2 = QLabel("这是第二页") layout2 = QVBoxLayout() layout2.addWidget(self.label2) self.page2.setLayout(layout2) self.stacked_widget.addWidget(self.page2) # 添加按钮控制页面显示 self.button1 = QPushButton("显示第一页") self.button1.clicked.connect(self.show_page1) self.button2 = QPushButton("显示第二页") self.button2.clicked.connect(self.show_page2) # 在窗口中布局按钮 self.central_widget = QWidget() self.setCentralWidget(self.central_widget) layout = QVBoxLayout() layout.addWidget(self.button1) layout.addWidget(self.button2) self.central_widget.setLayout(layout) def show_page1(self): self.stacked_widget.setCurrentWidget(self.page1) def show_page2(self): self.stacked_widget.setCurrentWidget(self.page2) if __name__ == '__main__': app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_()) ``` 在这个例中,QMainWindow被用作页面,QStackedWidget被添加为QMainWindow的中心窗口部件。两个页面被创建,并添加到QStackedWidget中。两个按钮被添加到页面中,用于控制页面显示。当按钮被点击时,对应的页面将被设置为当前显示页面。 ### 回答2: Qt中的页面一般是通过QStackedWidget或QTabWidget来实现的。无论是QStackedWidget还是QTabWidget,它们在页面的上层。下面分别介绍它们的特点。 QStackedWidget是一种可堆叠的窗口部件,可以在页面的上层显示多个页面。每个页面都是一个QWidget或其派生类的实例,可以通过addWidget()方法将页面添加到QStackedWidget中。页面显示顺序由添加的顺序决定,可以通过setCurrentIndex()方法来切换不同的页面显示QTabWidget是一种带有选项卡的窗口部件,也可以在页面的上层显示多个页面。每个选项卡都是一个QWidget或其派生类的实例,可以通过addTab()方法将页面添加到QTabWidget中。每个选项卡都有一个标签用于显示在选项卡上,可以通过setCurrentIndex()方法来切换不同的选项卡的显示。 无论使用QStackedWidget还是QTabWidget,它们都在页面的上层显示页面。这意味着页面将覆盖页面的部分或全部区域,并且用户可以在不同的页面之间切换。这种设计可以方便地实现多页面程序,并且提供了良好的用户体验。 总结起来,Qt中的页面通常通过QStackedWidget或QTabWidget来实现,它们都在页面的上层。使用这些部件可以方便地实现多页面程序,并且提供良好的用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值