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_);
相关推荐
誰能久伴不乏39 分钟前
用 UDP 做一条“可靠“的控制通道
c++·qt·网络协议·udp
十五年专注C++开发1 小时前
FlatBuffers: 一个高效的零拷贝二进制序列化库
c++·序列化·反序列化·flatbuffers
xys_6781 小时前
深挖C++:C++入门基础
开发语言·c++
高冷小鱼殿下2 小时前
C 语言指针与输入输出
c++
路溪非溪2 小时前
C++标准库之智能指针
linux·开发语言·c++
hetao17338373 小时前
2026-11-02 hetao1733837 的刷题记录
c++·算法
Tairitsu_H3 小时前
[C++高阶数据结构·图论下] 最短路径:为什么“挑最小的”一定正确?
数据结构·c++·图论
weixin199701080164 小时前
官方授权通道和灰色爬虫,做数据服务该选哪条路(附 python 源码)
c++·爬虫·python
wuminyu4 小时前
JVM执行引擎学习总结:热点字节码编译成本地机器码
java·linux·c语言·jvm·c++
Tairitsu_H4 小时前
[C++高阶数据结构·图论上] 最小生成树:为什么“选边”和“选点”是两条路?
数据结构·c++·图论·最小生成树