我们的一位老师要求我们创建一个没有任何主窗口UI文件的Qt应用程序(QMainWindow)。通常我总是创建一个,留空,让 uic 处理它。
我知道如果在窗口小部件(子窗口)与其父窗口之间定义了父关系,则无需删除窗口小部件(删除父窗口时删除)。因此,当删除UI时,所有子项都将被销毁。
如果我们不使用UI文件(未生成),我们是否必须手动删除添加到GUI的所有窗口小部件?
一点点样本:
MainWindow::MainWindow(QWidget* parent) : QMainWindow(parent){
layout = new QHBoxLayout(this);
aButton = new QButton(this);
layout->addWidget(aButton);
...
}
MainWindow::~MainWindow(){
delete ui; // No need to delete more if parental relation.
// However, what do we do if no ui has been generated?
// Do we have to delete aButton?
}
parent的值为0.它是应用程序的主要条目。
由于
答案 0 :(得分:3)
请参阅this article
QW小部件是Qt Widgets模块的基础类,它扩展了父子关系。儿童通常也成为儿童小部件,即它在父母的坐标系中显示,并由其父母的边界以图形方式剪裁。例如,当应用程序在关闭后删除消息框时,消息框的按钮和标签也会被删除,就像我们想要的那样,因为按钮和标签是消息框的子项
所以,你使用ui
没有区别。删除窗口时,其所有子项也将被删除。