在多个小部件上显示相同的QPushButton

blu*_*kin 3 layout qt copy qobject

我有两个小部件(Real和Fake),其中一个有QPushButton.现在我希望在另一个小部件中显示相同的按钮.我该怎么做?

我不想创建副本,我希望同一个QObject同时显示另一个小部件而不更改父级.

作为一个例子,在下面我希望"mybutton"同时显示在两个小部件中;

  QWidget *widgetReal = new QWidget();
  QWidget *widgetFake = new QWidget();
  widgetReal->setWindowTitle("Real");
  widgetFake->setWindowTitle("Fake");
  widgetReal->show();
  widgetFake->show();

  QGridLayout *layoutReal = new QGridLayout();
  QGridLayout *layoutFake = new QGridLayout();

  QPushButton *mybutton = new QPushButton();

  layoutReal->addWidget(mybutton);
  widgetReal->setLayout(layoutReal);

  layoutFake->addWidget(mybutton); //this changes the parent and this is not what I want to do
  widgetFake->setLayout(layoutFake);

  mybutton->show();
Run Code Online (Sandbox Code Playgroud)

我需要这个的原因是因为我有一堆MDISubWindows并且它们包含一些控件(按钮,复选框等等).现在我想从这些小部件中选择一些控件并创建一个小部件.这样做的原因是因为,当我只使用单个按钮时,我不想显示我的所有MDISubwindow任何建议都非常有用.谢谢.

-简历

Stu*_*lar 9

QWidgets应该只有一个父母.毫无疑问,你可以想出一些可以让你大致达到你想要的东西,但是为什么你可以重新设计以适应Qt GUI系统的工作方式呢?

不要试图与框架作斗争.如果你这样做,你最终会得到难以理解和难以维护的代码.