我一直在想,用于添加其他选项卡(如在互联网浏览器中)的特殊"+"选项卡是否有一个特殊的名称。
此外,有没有流行的框架(Qt、wxWidgets等)在其Notebook/TabWidget中有内置功能?
编辑:有些人问,既然实现起来很简单,为什么会有这样的功能。答案很简单:每个广泛使用的功能都应该有一个专用组件。在经典的选项卡小部件中实现它可能很简单,但当我们可以移动选项卡时(这个特殊的选项卡应该总是最后一个),或者当可以关闭选项卡而不必选择它们时(在一些选项卡小部件上,每个选项卡上都有一个十字来关闭选项卡),就更难实现了。考虑到不同的框架,它可能更简单,也可能更难实现。因此,要知道该功能是否足够标准,以便在某些框架中有一个专用名称和一些"内置"实现:)
对于当前版本的WPF、Winform和Qt,没有任何选项卡控件具有这样的功能,但可以很容易地添加。在WPF和Winform中查看类似示例的链接。
使用Qt,您可以使用以下代码:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->tabWidget, SIGNAL(currentChanged(int)), this, SLOT(changedTab(int)));
}
void MainWindow::changedTab(int tabId) {
if (tabId == ui->tabWidget->count() - 1) {
QWidget *newTab = new QWidget;
ui->tabWidget->insertTab(tabId, newTab, "new label");
ui->tabWidget->setCurrentIndex(tabId);
}
}
有关关闭选项卡,请参阅setTabsClosable()