前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >QMainWindow 添加中心部件

QMainWindow 添加中心部件

作者头像
我与梦想有个约会
发布2023-10-20 17:43:31
发布2023-10-20 17:43:31
23500
代码可运行
举报
文章被收录于专栏:jiajia_dengjiajia_deng
运行总次数:0
代码可运行

上几篇文章我们使用 QMainWindow 添加了菜单栏、工具栏、状态栏等控件,他们分别在窗口中起到不同的作用。但千万别忽略了中间位置,因为中间位置是我们用来添加其他控件的位置,如果你直接在对象中new了某些其他控件(比如一个button),那么这个控件会覆盖菜单栏导致不能正常显示。这就需要我们来创建一个中心部件,以保证各个控件之间不会冲突。

代码语言:javascript
代码运行次数:0
运行
复制
#include “cmainwindow.h”
#include 
#include 
#include 
#include 
#include 
#include 
CMainWindow::CMainWindow(QWidget *parent) : QMainWindow(parent)
{
    // 创建一个菜单栏
    QMenuBar* pMenuBar = menuBar();
// 给菜单栏增加一个主菜单 File
QMenu\* menuFile = pMenuBar->addMenu("&File");
/\*
 \* 给 File 下增加子菜单
 \* 第一个参数:图标
 \* 第二个参数:显示文字
 \* 第三个参数:由谁(哪个对象)来处理他的功能
 \* 第四个参数:处理的槽函数(后面再介绍)
 \* 第五个参数:快捷键
 \*/
QAction\* newAction = menuFile->addAction(QIcon(QPixmap("d:\\\\qt-logo.png")), "&New", this, SLOT(slotNew()), QKeySequence(tr("CTRL+N")));
menuFile->addAction("&Open");
menuFile->addAction("&Save");
// 插入分隔符
menuFile->addSeparator();
menuFile->addAction("&Exit");

// 给菜单栏增加一个主菜单 File
QMenu\* menuHelp = pMenuBar->addMenu("&Help");
menuHelp->addAction("&About");

// 添加一个工具栏
QToolBar\* toolBar = addToolBar("toolBar");
// 用工具栏的返回值来初始化工具栏子项
toolBar->addAction(newAction);

// 添加状态栏
QStatusBar\* status = statusBar();
// 给状态栏添加一个label用来显示文字 \_label 是成员变量,可以在对象中其他的位置修改它的值
status->addWidget(\_label = new QLabel("就绪"));

// 设置中心部件
QTableView\* view = new QTableView;
setCentralWidget(view);
// 设置 button 的父窗口是 view
QPushButton\* button = new QPushButton("Button", view);
}
void CMainWindow::slotNew()
{
    qDebug() << “slotNew…”;
    // 修改状态栏的值
    _label->setText(“新建”);
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-06-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档