C++ 以编程方式使用UI创建选项卡

C++ 以编程方式使用UI创建选项卡,c++,c,qt,C++,C,Qt,这是我的用户界面: 这是以编程方式创建的选项卡: ui->tabWidget->addTab(new QWidget(), "Tab 2"); 我希望新创建的选项卡具有与“聊天室”选项卡完全相同的布局。任何关于如何做到这一点的建议都是非常好的 您应该为此布局创建一个定制的QTabWidget,名为ChatWidget,并制作一个工厂API,如下所示: ChatWidget * ChatWidget::creater(TabWidget * tw, ChatData * cd)

这是我的用户界面:

这是以编程方式创建的选项卡:

ui->tabWidget->addTab(new QWidget(), "Tab 2");


我希望新创建的选项卡具有与“聊天室”选项卡完全相同的布局。任何关于如何做到这一点的建议都是非常好的

您应该为此布局创建一个定制的QTabWidget,名为ChatWidget,并制作一个工厂API,如下所示:

ChatWidget * ChatWidget::creater(TabWidget * tw, ChatData * cd) {
    ChatWidget * cw = ChatWidget.create();
    tw.addTab(cast<QWidget>cw, 0);
    // some init
    ...
    return cw;
}
ChatWidget*ChatWidget::creater(TabWidget*tw,ChatData*cd){
ChatWidget*cw=ChatWidget.create();
tw.addTab(castcw,0);
//一些初始化
...
返回cw;
}

<> P>长时间不使用Qt和C++,这可能给你一个提示。

< P>你应该为这个布局创建一个自定义QTabWITGET,作为名称ChanWigGET,并制作一个类似这样的工厂API:

ChatWidget * ChatWidget::creater(TabWidget * tw, ChatData * cd) {
    ChatWidget * cw = ChatWidget.create();
    tw.addTab(cast<QWidget>cw, 0);
    // some init
    ...
    return cw;
}
ChatWidget*ChatWidget::creater(TabWidget*tw,ChatData*cd){
ChatWidget*cw=ChatWidget.create();
tw.addTab(castcw,0);
//一些初始化
...
返回cw;
}

长时间不使用Qt和C++,这可能给你一个提示。

< P>使用你当前的<强>聊天室<强>类作为<强>基类< /强>并在其中做一些布局的事情; 下次要创建新的选项卡时,只需执行以下操作:

ui->tabWidget->addTab(new chatRoom(), "Tab 3");

希望能有所帮助。

使用您当前的聊天室类作为基类,并在其中进行一些布局工作

下次要创建新的选项卡时,只需执行以下操作:

ui->tabWidget->addTab(new chatRoom(), "Tab 3");

希望能有所帮助。

在Designer中,最简单的方法是创建一个名为
ChatTab
的新UI表单类,并基于
QWidget

将聊天室小部件和布局从MainWindow UI表单移动(即剪切和粘贴)到ChatTab表单,但将
QTabWidget
容器保留在MainWindow表单中。如果您希望聊天室第一次打开时位于主窗口中,请从inside Designer将其第一个
QWidget
升级为
ChatTab

任何附加选项卡应按如下方式以编程方式添加:

ui->tabWidget->addTab(new ChatTab(), "Tab 2");

如果你想让你的生活更轻松,可以在ChatTab构造函数中添加一些新奇的东西。

最简单的方法(在Designer中)是创建一个新的UI表单类,名为类似于
ChatTab
,并基于
QWidget

将聊天室小部件和布局从MainWindow UI表单移动(即剪切和粘贴)到ChatTab表单,但将
QTabWidget
容器保留在MainWindow表单中。如果您希望聊天室第一次打开时位于主窗口中,请从inside Designer将其第一个
QWidget
升级为
ChatTab

任何附加选项卡应按如下方式以编程方式添加:

ui->tabWidget->addTab(new ChatTab(), "Tab 2");

如果您想让您的生活更轻松,请在ChatTab构造函数中添加一些有趣的内容。

首先,您需要在主窗口中创建一个
QTabWidget
。Jacobs:检查更新的帖子。您需要以编程方式在新选项卡中复制布局。无论您如何创建第一个选项卡,都要做同样的事情。我不确定布局是如何以编程方式创建的,因为我使用了QT designer。首先,您需要在主窗口中创建一个
QTabWidget
。Jacobs:检查更新的帖子。您需要在新选项卡中以编程方式复制布局。无论您如何创建第一个选项卡,都要做同样的事情。我不确定布局是如何以编程方式创建的,因为我使用了QT designer。与前面提到的QTabWidget方法相比,此方法的另一个优点是,
ChatTab
小部件可以在任何类型的窗口QDockWidget、QDialog、QMainWindow中重复使用,与前面提到的QTabWidget方法相比,此方法的另一个优点是,
ChatTab
小部件可以在任何类型的窗口QDockWidget、QDialog、QMainWindow等中重复使用。您只需将其放入包装器中即可。