Qt 在主界面调用另一个界面的控件

首先说明,我是在vs+qt+vtk的环境下进行的。
1、关于如何在这种环境下建立一个新的ui界面。
我原来有一个项目,需要添加一个新的界面,实现分屏显示,整个项目是通过CMAKE进行管理的,所以,要先在QtCreator中新建一个qt的界面,需要什么窗口类型就新建一个什么类型的窗口。将项目文件夹中的.ui/.cxx/.h三个文件拷贝到现有的工程中,在CMakeList中把新添加的文件写进去。然后再重新CMake一次,得到新的项目文件。这个操作就不详述了。
2、关于如何在主界面中调用子界面的控件
首先进行一下说明,我的主界面是原来的界面,名称为:psoditronimaging,子界面为新添加的界面,名称为:subwin,子界面是用来进行分屏显示的。上面有一个QVTKWidget插件,这个插件和普通的qt的控件相同,都可以看做是qt的控件,你可以把它看做是一个QLabel。现在要实现的目标就是在主界面中调用子界面的QVTKWidget这个插件,让它显示图形。(相当于在主界面让子界面的QLabel显示我想要的字符之类的操作,也就是调用它)。
(1)将子界面的.h文件中Ui::subWin *ui修改为public属性,因为在主界面中通过类的方式调用。
如图1所示。
在这里插入图片描述
图1 修改为public
(2)在主界面的.h文件中添加子界面的.h头文件,如图2中所示,添加#include “subwin.h”
在这里插入图片描述
图2 添加subwin.h
(3) 还是在主界面的.h文件中,添加一个子界面的对象,如图3所示

在Python Qt中,可以使用QStackedWidget控件来实现在一个界面中切换到一个界面。 以下是一个示例代码,演示如何在主窗口中嵌套两个子窗口,并通过按钮在两个子窗口之间切换: ```python from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QStackedWidget, QPushButton, QVBoxLayout class MainWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("Main Window") self.stacked_widget = QStackedWidget() self.setCentralWidget(self.stacked_widget) self.create_widgets() def create_widgets(self): # Create sub-widgets self.widget1 = QWidget() self.widget2 = QWidget() # Add widgets to stacked widget self.stacked_widget.addWidget(self.widget1) self.stacked_widget.addWidget(self.widget2) # Create buttons to switch between widgets self.button1 = QPushButton("Switch to Widget 1") self.button2 = QPushButton("Switch to Widget 2") self.button1.clicked.connect(lambda: self.stacked_widget.setCurrentIndex(0)) self.button2.clicked.connect(lambda: self.stacked_widget.setCurrentIndex(1)) # Add buttons to layouts layout1 = QVBoxLayout() layout1.addWidget(self.button2) self.widget1.setLayout(layout1) layout2 = QVBoxLayout() layout2.addWidget(self.button1) self.widget2.setLayout(layout2) if __name__ == "__main__": app = QApplication([]) window = MainWindow() window.show() app.exec_() ``` 在这个例子中,我们创建了一个QStackedWidget作为主窗口的中央部件,并在其中添加了两个子窗口。我们还在每个子窗口中添加了一个QPushButton,用于在两个子窗口之间切换。当按钮被点击时,我们使用setCurrentIndex()方法来切换到相应的子窗口。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值