[英]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(使用插件而不是促销产品)将间隔器添加到工具栏,是否应该将QAction
, QWidget
或QWidgetAction
子类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.