Qt:主窗体(QMainwindow)初始化注意事项

使用"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_);
相关推荐
小龙报9 小时前
【51单片机】从 0 到 1 玩转 51 蜂鸣器:分清有源无源,轻松驱动它奏响新年旋律
c语言·数据结构·c++·stm32·单片机·嵌入式硬件·51单片机
石去皿9 小时前
【嵌入式就业6】计算机组成原理与操作系统核心机制:夯实底层基础
c++·面试·嵌入式
王老师青少年编程9 小时前
2024年信奥赛C++提高组csp-s初赛真题及答案解析(完善程序第1题)
c++·题解·真题·初赛·信奥赛·csp-s·提高组
无小道9 小时前
QT——QFIie和QFileInfo文件类
开发语言·qt·命令模式
一只小小的芙厨10 小时前
AT_tkppc3_d 巨大チェスボード 题解
c++·题解
我在人间贩卖青春10 小时前
C++之继承与派生类的关系
c++·向上造型·向下造型
Trouvaille ~10 小时前
【Linux】应用层协议设计实战(二):Jsoncpp序列化与完整实现
linux·运维·服务器·网络·c++·json·应用层
EmbedLinX10 小时前
嵌入式之协议解析
linux·网络·c++·笔记·学习
薛定谔的猫喵喵10 小时前
基于PyQt5的视频答题竞赛系统设计与实现
开发语言·qt·音视频
wangjialelele10 小时前
Linux中的进程管理
java·linux·服务器·c语言·c++·个人开发