【问题标题】:Name and implementations of the special "+" tab特殊“+”选项卡的名称和实现
【发布时间】:2013-01-20 18:26:29
【问题描述】:

我一直想知道用于添加其他标签(如在互联网浏览器中)的特殊“+”标签是否有特殊名称。

此外,是否有任何流行的框架(Qt、wxWidgets 等)在其 Notebook/TabWidget 中具有内置功能?

编辑:有人问为什么会存在这样的功能,而实现起来很简单。嗯,答案很简单:每个广泛使用的功能都应该有一个专用组件。在经典的选项卡小部件中实现可能很简单,但是当我们可以移动选项卡(这个特殊的应该始终是最后一个)或者可以关闭选项卡而不必选择它们时(在一些选项卡小部件,每个选项卡上都有一个关闭选项卡的叉号)。 好吧,考虑到不同的框架,它可能更简单或更难实现。因此,这个问题是要知道该功能是否足够标准以在某些框架中具有专用名称和一些“内置”实现:)

【问题讨论】:

  • 不,既然这么容易实现,为什么还要准备好呢?
  • 这个问题可以针对许多小部件提出。仅仅因为经常使用的东西应该为他们准备好东西。对此有一些限制:您不希望能够将其关闭,也不希望将“+”放在标签中最后一个以外的其他位置:)
  • 根据是否有“添加标签”按钮来选择GUI框架确实没有意义。
  • 我有没有说过我选择了什么?这只是一些随机的问题,与我正在做或想做的任何事情没有任何联系。只是为了心灵的满足:p

标签: qt user-interface tabs widget wxwidgets


【解决方案1】:

目前的 WPF、Winform 和 Qt 版本没有任何选项卡控件具有这样的功能,但可以轻松添加。 查看WPFWinform 中类似示例的链接。

【讨论】:

  • 好吧。由于没有人给出其他答案,我承认目前还没有实现该功能并且它没有名称。我有点失望,但如果它不存在就帮不上忙:)
【解决方案2】:

使用 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()

【讨论】:

    猜你喜欢
    • 2015-11-25
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 2019-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多