【问题标题】:Qt QTabWidget - auto set tab name numberQt QTabWidget - 自动设置选项卡名称编号
【发布时间】:2013-02-21 06:16:45
【问题描述】:

我正在开发一个应用程序,但标签名称有问题。 当我点击按钮(新)时,我想动态创建新标签。

使用此功能我创建新文件:

bool MainWindow::toolbarNewFile()
{

    QWidget *page = new QWidget;

    QTextEdit *codeEditor = new QTextEdit;

    QGridLayout *layout = new QGridLayout;

    layout->addWidget(codeEditor);

    page->setLayout(layout);

    tab_widget->addTab(page,"File");

    return true;
}

但所有选项卡的名称都是“文件”

如何设置选项卡名称编号。当我像这样创建新标签时自动设置标签的编号。

文件 1、文件 2、文件 3

我尝试设置counter i=0;addTab(page,"File-"+ i++); 不起作用。

【问题讨论】:

    标签: qt qtabwidget


    【解决方案1】:

    您需要将整数转换为 QString 才能将其连接到 QString。更好的是,您可以使用QString::arg 函数并非常轻松地获得可读且可能更快的代码:

    tab_widget->addTab(page, QString("File-%1").arg(i++));
    

    i 是类中初始化为 1 的字段。

    【讨论】:

    • 或tab_widget->addTab(page,"File-"+QString::number(i++));
    • 原始解决方案通常更快,因为您将"File" 转换为QStringi 转换为QString 和不必要的QString::operator+ 呼叫,但在这种情况下 - 这是有效的方式我也要做。
    • @ Burgos Dot 工作,我所有的新标签都命名为“File-0”。我int i = 0; tab_widget->addTab(page, QString("File-%1").arg(i++));
    • @Makciook tab_widget->addTab(page,"File-"+QString::number(i++));这将返回所有文件名有 File-0、File-0、File-0
    • int i 应该在类中声明,而不是在函数中,因为如果你进入函数,它的值总是 0。
    猜你喜欢
    • 2018-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-05
    • 2011-01-30
    • 2021-12-10
    相关资源
    最近更新 更多