qt creator中的自定义类 我对QT很陌生,对C++很陌生,但我需要帮助解决这个问题。 我有一个名为HybridStack的自定义类,我希望它扩展一个QStackedWidget和一个QMainWindow。 我想让它扩展一个QStackedWidget,这样我就可以使用我需要的任意多的页面,我想让它扩展一个QMainWindow,这样我就可以让每个页面都有自己的菜单栏,不同页面的菜单内容也不同

qt creator中的自定义类 我对QT很陌生,对C++很陌生,但我需要帮助解决这个问题。 我有一个名为HybridStack的自定义类,我希望它扩展一个QStackedWidget和一个QMainWindow。 我想让它扩展一个QStackedWidget,这样我就可以使用我需要的任意多的页面,我想让它扩展一个QMainWindow,这样我就可以让每个页面都有自己的菜单栏,不同页面的菜单内容也不同,c++,qt,user-interface,qt-creator,C++,Qt,User Interface,Qt Creator,我想通过以下方式将这个自定义类HybridStack添加到Qt设计器中 从QStackedWidget升级它 这可能吗?如果是的话,你能告诉我怎么做吗?如果不可能的话,还有什么替代方案?最重要的是,我需要在设计器中使用它,因为我需要使用qmake您不能同时从QStackedWidget和QMainWindow派生,因为这两个都是从QWidget派生的。如果你这样做了,你最终会被解雇。你必须改用构图 即使如此,我也不确定在QStackedWidget中放置QMainWindow是否正确,因为它被设

我想通过以下方式将这个自定义类HybridStack添加到Qt设计器中 从QStackedWidget升级它


这可能吗?如果是的话,你能告诉我怎么做吗?如果不可能的话,还有什么替代方案?最重要的是,我需要在设计器中使用它,因为我需要使用qmake

您不能同时从QStackedWidget和QMainWindow派生,因为这两个都是从QWidget派生的。如果你这样做了,你最终会被解雇。你必须改用构图

即使如此,我也不确定在QStackedWidget中放置QMainWindow是否正确,因为它被设计为顶级项目(即,它直接显示为窗口,而不是嵌入到另一个QWidget中)。实现所需功能的另一种方法(在更改选项卡时更改菜单栏)如下所示:

  • 将顶级项目设置为QMainWindow
  • 使中心小部件成为从QStackedWidget派生的自定义小部件
  • 当堆栈小部件中显示的项目更改时,可以调用QMainWindow::setMenuBar来更改菜单栏。QStackWidget中的每个小部件都可以有自己的QMenuBar实例,用于此目的

  • 你检查过关于如何创建自定义小部件的文档吗?是的,我检查过。我可以在其他项目上这样做,但不确定如何在这个项目上这样做谢谢你的回复。我试试看