复制一个QWidget
Duplicate a QWidget
我需要能够复制一个Qwidget,这样我就可以复制一个窗口,因为它会在运行时改变。这可能吗?
void Duplicate(QWidget * Show)
{
//I tried...
Qwidget Shw = *Show; //but operator= is private
//and the copy constructor (I think), which is also private
Qwidget Shw(*Show);
//
Shw.Show();
}
这是设计。解决这个问题的通常方法是实现一个方法(通常称为clone()
),该方法允许您指定在复制类的实例时应该应用的确切语义。这种方法还可以防止无意的隐式复制,例如容器类。
来自Qt文档:
无复制构造函数或赋值操作符
QObject既没有复制构造函数,也没有赋值操作符。这是设计好的。实际上,它们是声明的,但是在私有的使用宏Q_DISABLE_COPY()。实际上,所有的Qt类派生自QObject(直接或间接)使用此宏来声明它们的复制构造函数和赋值操作符必须是私有的。的在Qt上对同一性与价值的讨论中找到了推理对象模型页。
主要的结果是应该使用指向QObject(或指向QObject的指针)的指针您的QObject子类),否则您可能会使用将QObject子类作为一个值。例如,没有副本构造函数时,不能使用QObject的子类作为要使用的值存储在一个容器类中。必须存储指针。
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 运行同一解决方案的另一个项目的项目
- 挂起和取消挂起一个文件DLL
- 将一个 QWidget 链接到另一个新创建的 QWidget
- 在另一个小部件中更改QWidget的背景颜色
- 如何使用OpenGL渲染到一个QMainWindow的两个QWidget?
- 是一个哨兵 QWidget 一个好主意(以防止在创建和填充布局时出现内存泄漏)
- 我怎样才能创建一个非常愚蠢的QWidget
- 如何在 Qwidget 的中心设计一个三角形(在 QT 中使用 OpenGl)
- 嵌入另一个窗口作为 QWidget
- 无法在放置在另一个 QWidget 中的 QWidget 中显示树 (QTreeView)
- 在 QWidget 传递给另一个类后,将 QWidget 传递给 QPushButton(按钮不显示)
- 为什么一个懒惰加载的QWidget会显示,而一个存储的却不会
- 如何创建一个继承自QWidget的qt插件
- 将当前QWidget替换为QMainWindow中的另一个QWidget
- 如何使一个qwidget知道另一个qwidget在它上面
- 为什么可以从QWidget创建一个对象而不将其包含在C++程序的开头
- 复制一个QWidget