代码之家  ›  专栏  ›  技术社区  ›  Alexis Wilke

我创建了一个QTooButt,标签将包括“…”,但看起来QT删除它们,对吗?

  •  1
  • Alexis Wilke  · 技术社区  · 6 年前

    我使用下面的代码,第一部分,创建qtoolbutton,来自designer/moc,其余的我添加了。

    // Moc part
    QToolButton * f_tool_button = new QToolButton(bottom_grid);
    f_tool_button->setObjectName(QStringLiteral("f_tool_button"));
    f_tool_button->setText(QApplication::translate("MainWindow",
                                                   "Tool Button...", 0));
    
    // What I added
    f_action = new QAction(this);
    f_action->setObjectName(QStringLiteral("f_action"));
    f_action->setText(QApplication::translate("MainWindow",
                                              "&Click...", 0));
    
    f_menu.reset(new QMenu("Tool Button Menu ...", this));
    f_menu->addAction(f_action);
    
    f_tool_button->setDefaultAction(f_menu->menuAction());
    

    如果我不打电话 setDefaultAction() ,标题将按预期显示。

    当我添加默认操作时,标签似乎被 f_menu 标题, “工具按钮菜单…” (我故意放了一个不同的标签)。但不知怎么的,名字上的“…”被去掉了。

    你知道这个问题吗?这是一个特殊的qt特性吗?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Mike    6 年前

    这个 QToolButton 显示文本 QAction iconText property (不是) text ) 文本 用于菜单项,而 图标文本 在工具栏中显示。如果没有设置, 图标文本 是一个被剥夺的版本 文本 .

    重写stipping的默认行为 文本 生成 图标文本 ,您可以设置所需的 图标文本 为了你 QACT 使用 QAction::setIconText() (即 f_action->setIconText("Click..."); 就在你的 f_action->setText 打电话)

    推荐文章