我正在尝试实现一个QToolBar子类,它的项目由模型指定,而不是单独添加.这意味着选择添加/删除项目(工具栏按钮)的功能,例如addAction不应公开访问.
从这个对象继承的最佳方法是什么,但是选择私有函数?
我目前最好的想法是这样做:
class ToolbarView : public QToolBar
{
Q_OBJECT
public:
explicit ToolbarView(QWidget *parent = 0);
signals:
public slots:
private:
void addAction (QAction *action) {Q_UNUSED(action)};
QAction* addAction (const QString &text) {return QToolBar::addAction(text) ;}
...
QAction* addSeparator() {QToolBar::addSeparator();}
... [list of about 10 of these]
};
Run Code Online (Sandbox Code Playgroud)
因此,将所有不应公开的功能重新定义为私有.
这是一个好主意,还是有更好的方法?