我有两个小部件(真实的和假的),其中一个有 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();

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

-简历

最佳答案

QWidgets 应该只有一个父级。毫无疑问,您可以想出一些可以让您大致实现您想要的东西的技巧,但是当您可以重新设计以适应 Qt GUI 系统的工作方式时,为什么要这样做呢?

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

关于qt - 在多个小部件上显示相同的 QPushButton,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7042799/

10-11 22:32
查看更多