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_);
相关推荐
安全二次方security²4 分钟前
CUDA C++编程指南(7.31&32&33&34)——C++语言扩展之性能分析计数器函数和断言、陷阱、断点函数
c++·人工智能·nvidia·cuda·断点·断言·性能分析计数器函数
爱学习的阿磊5 分钟前
C++中的策略模式应用
开发语言·c++·算法
L_090713 分钟前
【Linux】进程状态
linux·开发语言·c++
NaCl鱼呜啦啦13 分钟前
0126-0201编程心得
c++
2401_8384725114 分钟前
C++异常处理最佳实践
开发语言·c++·算法
qq_2965446515 分钟前
最新B站短视频、长视频外,动漫、各类线上课程,付费课程下载
c++
m0_7369191017 分钟前
C++中的类型标签分发
开发语言·c++·算法
2301_7903009624 分钟前
C++与微服务架构
开发语言·c++·算法
一切尽在,你来28 分钟前
C++多线程教程-1.1.4 并发编程的风险(竞态条件、死锁、数据竞争、资源争用)
开发语言·c++
消失的旧时光-194335 分钟前
C++ 函数参数传递方式总结:什么时候用值传递、引用、const 引用?
开发语言·c++