繁体   English   中英

Qt Designer的自定义动作插件

[英]Custom action plugin for Qt Designer

我计划在工具栏(在下面)中的“暂停”和“设置”按钮之间使用一个空格,以使“设置”按钮在QToolBar右对齐。 下面的分隔符没有切割它。

工具栏需要垫片

以下方法显然有效,尽管我实际上尚未尝试过:

QWidget* spacer = new QWidget();
spacer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
// toolBar is a pointer to an existing toolbar
toolBar->addWidget(spacer);
toolBar->addAction("Right-aligned button");

(感谢http://www.ffuts.org/blog/right-aligning-a-button-in-a-qtoolbar/

Qt设计似乎不允许添加小部件一个QToolBar ,虽然QToolBar确实有一个addWidget()方法,如以上使用。 因此,如果我希望能够使用Qt Designer(使用插件而不是促销产品)将间隔器添加到工具栏,是否应该将QActionQWidgetQWidgetAction子类QWidgetAction 甚至还可以为Qt Designer编写自定义操作插件吗?

您不能继承QAction并期望在Qt Creator / Designer中正常使用它。 它使用ui中的标签并将其添加到菜单和工具栏。 您不能将class =“ customclass”元素与其他小部件之类的条目一起指定。 因为对动作的区别对待,所以您甚至不能将其子类化,这样就可以了。

对于QWidgetAction / QWidget,如果您知道我的意思,那么您与QActionGroup在同一条船上。 (我个人认为这在表单设计器的设计中是一个很大的疏漏!)因此在设计器中进行预览也是可以的。

您可以做的最后一件事(不可见的选项3)是QToolbar的子类化,但是您可以对它进行子类化,但是,除了普通的旧QToolbar可以做的之外,您仍然不会在设计器中看到任何东西。 这并不意味着完全解决了我要讲的重点:

真正的答案必须是不可见的选项4,将QToolbar子类化为设计器插件(如果您还不知道那里有一个插件,那我将需要大量编码,而我不知道实际上有设计器插件的任何插件) -ins)Form Designer插件不多见,但您可以找到某人的子类工具栏,然后自己将其制作成插件,从而节省了一步(qt创建者甚至具有该模板),然后在qt designer和您的组。

我知道这个问题是在2年前提出的,但是当我看到一个未解决的问题时,我想到的是那些可能会阅读并陷入僵局的搜索者,所以如果我能做出贡献,我会做...我希望我至少能帮上忙您或任何其他人走上正轨,祝大家好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM