这是我的UI:与UI创建标签编程
这片创建程序:
ui->tabWidget->addTab(new QWidget(), "Tab 2");
我想新创建的标签有确切与“聊天室”选项卡具有相同的布局。任何关于如何做到这一点的建议都会很棒。
这是我的UI:与UI创建标签编程
这片创建程序:
ui->tabWidget->addTab(new QWidget(), "Tab 2");
我想新创建的标签有确切与“聊天室”选项卡具有相同的布局。任何关于如何做到这一点的建议都会很棒。
在Designer中最简单的方法是创建一个名为ChatTab
的新UI界面类,并将其基于QWidget
。
将您的聊天室小部件和布局从您的MainWindow UI窗体移动(即剪切和粘贴)到ChatTab窗体,但将QTabWidget
容器保留在MainWindow窗体中。如果您希望聊天室在第一次打开时位于主窗口中,请将其第一个QWidget
从Designer内部推广至ChatTab
。
任何附加标签应编程添加像这样:
ui->tabWidget->addTab(new ChatTab(), "Tab 2");
添加花哨的东西给ChatTab构造函数,如果你想使您的生活更轻松。
与QTabWidget方法相比,此方法的另一个优点是“ChatTab”小部件可以在任何窗口中重用 - QDockWidget,QDialog,QMainWindow等。您只需将其放入内部一个包装。 – Phlucious
你应该创建此布局定制QTabWidget,姓名ChatWidget,使工厂API这样的:
ChatWidget * ChatWidget::creater(TabWidget * tw, ChatData * cd) {
ChatWidget * cw = ChatWidget.create();
tw.addTab(cast<QWidget>cw, 0);
// some init
...
return cw;
}
很久没有使用Qt和C++,可能是这会给你一个提示。
使用当前聊天室类作为基类,并做一些布局的东西在里面;
下一次,你想创建一个新的标签,只是这样做:
ui->tabWidget->addTab(new chatRoom(), "Tab 3");
希望能有所帮助。
首先,您需要在主窗口中创建一个'QTabWidget' – 2012-12-16 14:42:42
X.Jacobs:检查更新的帖子。 – Carlj901
您需要以编程方式在新选项卡中复制布局。无论您如何创建第一个标签,请执行相同的操作。 –