用QT C 显示新框架
Show new frame with qt c++
当我单击按钮时,我需要打开一个新的qmainwindow。
启动新窗口的插槽是以下内容,它应打开两个窗口,但只有新操作员创建的窗口显示:
MyWin win1(this);
win1.show();
MyWin *win2 = new MyWin(this);
win2->show();
以下是mywin.h和mywin.ccp
#ifndef MyWin_H
#define MyWin_H
#include <QMainWindow>
namespace Ui {
class FrmManipolo1;
}
Class MyWin : public QMainWindow
Q_OBJECT
public:
explicit MyWin(QMainWindow *parent = 0);
~MyWin();
private:
Ui::MyWin *ui;
};
#endif
mywin.cpp
include "MyWin.h"
include "ui_MyWin.h"
MyWin::MyWin(QMainWindow *parent) :
QMainWindow(parent),
ui(new Ui::MyWin)
{
ui->setupUi(this);
}
MyWin::~MyWin()
{
delete ui;
}
这不起作用:
MyWin win1(this);
win1.show();
因为它在堆栈上创建win1
对象,因此win1
对象在当前范围的末尾被破坏,然后才能实际绘制。
这有效:
MyWin *win2 = new MyWin(this);
win2->show();
因为对象分配在堆上,并且其寿命不会在当前范围内结束,所以当您在其地址上调用DELETE时它结束(win2
指针,仅保留对象的地址,而不是实际对象(,或父母将在您的情况下调用DELETE(因为您将this
指针作为父参数传递给构造函数(。
相关文章:
- 在没有Xcode的情况下在Mac捆绑包中嵌入框架
- catch框架有没有办法比较流或文件
- 如何将不同的可执行文件合并到一个窗口框架中进行编码?像浏览器一样
- 使用Qt框架在c ++类中创建API调用
- 如何在ECS框架中更新组件数据和通知系统
- VSCode IntelliSense无法识别SDL框架的SDL_image扩展库
- 用于C++的静态二进制检测或二进制重写工具和框架
- GoogleMock是否仍然打算与任何测试框架一起使用?
- 带有框架的 QGraphicsTextItem 的 QPropertyAnimation 会使文本抖动
- 在C++中使用 Catch 测试框架编译错误"error: expected ';' at end of declaration list"
- 修改生成文件以简化框架 #include 路径
- 无敌框架并受到伤害等级
- 如何在提升构建中设置环境变量以进行提升单元测试框架?
- 使用 gtest 框架在单元测试代码中检查目标对象的私有变量的最佳实践是什么?
- Xcode 中的加速框架以获得 A 的 QR 分解,但找不到 zgeqrf
- 如何编译和运行一个新的 C++ Actor 框架项目?
- 用QT C 显示新框架
- Visual Studio 2012 的新C++单元测试框架是可移植的吗?
- 在Qt中移除框架并替换新框架
- 我可以使用Eclipse作为新的跨平台GUI的框架吗?