小编Van*_*wer的帖子

QMenu*<< QAction* - 帮我写一个全球QMenu插入算子

如果没有其他原因而不是为了我自己的娱乐,我希望编写一个全局插入操作符,以便我可以使用花哨的代码:

aQMenu << aQAction1 << aQAction2 << aQAction2 << seperator << aQAction3;
Run Code Online (Sandbox Code Playgroud)

也许你讨厌语法,但我至少想尝试使用它.问题是,这是我第一次尝试编写插入操作符代码,而且我很难过.将枚举"seperator"插入QMenu*的代码很简单,我有这个工作,但我认为这段代码适用于将QAction*插入QMenu*:

// does not compile:  "must have an argument of class or enumerated type"
QMenu *operator<< (QMenu *menu, QAction *action)
{
        menu->addAction(action);
        return menu;
}
Run Code Online (Sandbox Code Playgroud)

编译器抱怨说这个函数需要一个类或枚举类型的参数,这让我感到困惑,因为第二个参数是类类型的.我试图用&符改述这个函数,但我还没有找到写作方式它适当地下来.我已经看了很多关于网络示例的内容,并认为现在是时候讨论这个问题了.

我知道那里的一些编码器会抱怨我偏离标准的Qt语法,但我很乐意用其他类重载运算符<<.似乎插入操作符在这里工作得很好.我能说什么 - 这让我很开心.

c++ qt

1
推荐指数
1
解决办法
382
查看次数

标签 统计

c++ ×1

qt ×1