使用"setAttribute(Qt::WA_DeleteOnClose);"释放资源。
该语句在控件(QWidget)收到关闭事件(close event)时删除该控件,释放资源。该语句一般在控件构造时
调用。
cpp
Main_window::Main_window(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::Main_window)
{
ui->setupUi(this);
set_scene();
set_connection();
setAttribute(Qt::WA_DeleteOnClose);
}
注意事项:
如果主窗体在main函数中使用智能指针创建,智能指针会根据环境自动释放指针资源,则不应再使用该语句释放资源,否则会导致主窗体指针被释放两次。
添加菜单
在头文件添加菜单和按钮
cpp
QMenu* file_menu_;
QAction* open_action_;
QAction* exit_action_;
在源文件进行实例化。
cpp
file_menu_ = menuBar()->addMenu(tr("&File"));
open_action_ = new QAction(this);
open_action_->setText(tr("Open"));
open_action_->setShortcut(QKeySequence::Open);
file_menu_->addAction(open_action_);
exit_action_ = new QAction(this);
exit_action_->setText(tr("E&xit"));
exit_action_->setShortcut(QKeySequence::Quit);
file_menu_->addAction(exit_action_);