Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在QT中直接创建连接或调用方法,哪种解决方案最好?_C++_Qt_Class_Qt5 - Fatal编程技术网

C++ 在QT中直接创建连接或调用方法,哪种解决方案最好?

C++ 在QT中直接创建连接或调用方法,哪种解决方案最好?,c++,qt,class,qt5,C++,Qt,Class,Qt5,开发pdf阅读器应用程序。QT 5.11.0 我有一个类PdfPresenter,它包含视图的UI业务逻辑 class PdfPresenter { public: PdfPresenter(PdfViewer* parentPdfViewer); ~PdfPresenter(); SOME CODE HERE public: void OnClick(const QPoint event);//some logic private://fields Lin

开发pdf阅读器应用程序。QT 5.11.0

我有一个类PdfPresenter,它包含视图的UI业务逻辑

class PdfPresenter
{
public:
    PdfPresenter(PdfViewer* parentPdfViewer);
    ~PdfPresenter();

SOME CODE HERE
public:
    void OnClick(const QPoint event);//some logic

private://fields
    LinkHandler *m_linkHandler;
早些时候,演示者使用界面与View交谈。最近我删除了这个东西,因为我认为它创建了一个不必要的抽象层

此外,我还有一个LinkHandler类,它获取链接,定义其类型,并执行一些操作

class LinkHandler
{
public:
    LinkHandler();

    void execute(Link link);

}
在检测到类型后,我想调用父方法,如转到页面,我有两个方法

我的问题:


让所有这些类都依赖QObject并创建信号和插槽是最佳做法,还是我应该在LinkHandler中创建一个父字段并直接调用方法?

这是一个很好的经验法则:

  • 如果你知道你要通知的确切地点,就直接打电话
  • 如果您不知道要通知多少或哪些地方,则会发出信号

    • 这是一条很好的经验法则:

      • 如果你知道你要通知的确切地点,就直接打电话
      • 如果您不知道要通知多少或哪些地方,则会发出信号

      这要看情况而定。信号和插槽非常强大,但运行速度较慢。您正在征求意见,这被认为是离题的。为了再次讨论这个话题,你可以询问采取任何一种方法的含义,但要确保你展示了自己的努力。我知道,因为我问我只有2个方法可以调用,我应该从QObject为itOr继承吗?我应该把这个逻辑放进presenter类中,不要担心。这真的取决于我。信号和插槽非常强大,但运行速度较慢。您正在征求意见,这被认为是离题的。为了再次讨论这个话题,你可以询问采取任何一种方法的含义,但要确保你展示了自己的努力。我知道,因为我问我只有2个方法可以调用,我应该从QObject为itOr继承吗?我应该将此逻辑放入presenter类中,不要担心它?