QT第二课 工具栏、状态栏、铆接部件、核心部件

#include "mainwindow.h"
#include 
#include 
#include 
#include 
#include 
#include 
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    resize(600,400);

    // 包含菜单栏 只能有一个
    QMenuBar * bar =  menuBar();
    //将菜单栏放入到窗口中
    this->setMenuBar(bar);

    //创建文件菜单
    QMenu * fileMenu =  bar->addMenu("文件");
    QMenu * editMenu =  bar->addMenu("编辑");

    //添加菜单项
    QAction * newAction =  fileMenu->addAction("新建");
    // 添加分割线
    fileMenu->addSeparator();
    QAction * openAction =  fileMenu->addAction("打开");

    //工具栏  可以有多个
    QToolBar * toolBar = new QToolBar(this);
    addToolBar(Qt::LeftToolBarArea,toolBar); //默认停靠范围

    //只允许左右侧停靠
    toolBar->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea );

    //设置浮动
    toolBar->setFloatable(false);

    //设置移动 (总开关)
    toolBar->setMovable(false);

    //工具栏添加菜单项
    toolBar->addAction(newAction);
    //添加分割线
    toolBar->addSeparator();
    toolBar->addAction(openAction);


    //状态栏 只能有一个
    QStatusBar * stBar = statusBar();
    setStatusBar(stBar);
    QLabel * label = new QLabel("提示信息",this);
    stBar->addWidget(label); //添加提示信息到左侧

    QLabel * label2 = new QLabel("右侧提示信息",this);
    stBar->addPermanentWidget(label2);


    //铆接部件 浮动窗口 可以有多个
    QDockWidget * dock = new QDockWidget;
    //添加铆接部件到 窗口中
    addDockWidget(Qt::BottomDockWidgetArea,dock);

    //设置停靠范围
    dock->setAllowedAreas(Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea);


    //核心部件 只能一个
    QTextEdit * edit = new QTextEdit; //文本编辑框
    setCentralWidget(edit);
}

MainWindow::~MainWindow()
{

}

 

  1. QMainWindow
    1. 菜单栏 QMenuBar * bar = MenuBar()  只能最多有一个
      1. 把这个栏添加到 窗口中 setMenuBar
      2. 添加菜单 addMenu(文件)
      3. 文件里添加菜单项 addAction(新建) 返回QAction
      4. 添加分隔符 addSeparator
    2. 工具栏 可以有多个
      1. tBar =  new QToolBar
      2. addToolBar 默认停靠位置,tBar
      3. 设置 停靠、浮动、移动
      4. 添加菜单项
    3. 状态栏 statusBar  只能一个
      1. 左侧添加
      2. 右侧添加
    4. 铆接部件 可以多个
      1. QDockWidget
      2. addDockWidget(默认位置,。。)
      3. 设置后期的停靠位置
    5. 核心部件  只能一个
      1. setCentralWidget
  2. 添加资源文件
    1. 首先将资源导入到项目中
    2. 右键项目 -  添加新文件 – Qt  - Qt Resource File
    3. 给资源起名称 res
    4. Qt会生成res.qrc 文件
    5. 右键res.qrc  open in Editor
    6. 添加前缀
    7. 添加文件
    8. 使用 “ : + 前缀名 + 文件名 ”
    9. 可以设置别名,但是不建议,因为设置别名,原来的方式就不可用了
  3. 对话框
    1. 模态对话框
      1. Dialog dlg
      2. dlg.exec() 阻塞功能
    2. 非模态对话框
      1. Dialog dlg
      2. dlg.show() 会一闪而过 所以创建在堆上
      3. new dlg dlg->show()
      4. 设置属性 55号 setAttribute(Qt::WA_DeleteOnClose)
  4. QMessageBox
    1. 错误、信息、警告、问题
    2. 问题 5个参数
      1. 1 父亲 2 标题 3 显示内容 4 按键类型 5 默认关联回车按键
  5. QFileDialog 
    1. getOpenFileName(父亲,标题,默认路径,过滤文件格式)
    2. 返回值是文件路径
  6. QColorDialog
    1. getColor( 默认色 QColor(r,g,b))
    2. 返回值 QColor
  7. 界面布局
    1. 登陆窗口
    2. 水平布局 和 垂直布局
    3. 默认widget和控件之间有9像素的间隙
    4. 灵活运用弹簧
  8. 控件
    1. 按钮组
      1. QPushButton 可以加Icon
      2. QToolButton 主要显示Icon,想显示图片和文字 ,修改属性toolButtonStyle
        1. 自带效果 透明效果 autoRaise
      3. QRadioButton
        1. setChecked 设置默认选中
        2. 监听clicked信号
      4. QCheckButton
        1. statusChanged 状态改变 0 未选中 1 半选 2 全选
    2. ListWidget
      1. QListWidgetItem * item = new … (“诗词”)
      2. ui->listWidget->addItem(item);
      3. 设置对齐方式 item->setTextAlignment(Qt::AlignHCenter);
      4. addItems( QStringlist)
    3. TreeWidget
      1. 设置头
      2. ui->treeWidget->setHeaderLabels(QStringList() << "英雄"<<"英雄介绍");
        1. 设置具体内容
      3. 创建顶层的item
        1. QTreeWidgetItem * liItem = new …
        2. ui->treeWidget->addTopLevelItem(liItem);
      4. 设置子节点
        1. addChild()
    4. TableWidget
      1. 设置列数
      2. 设置头 姓名 性别 年龄
      3. 设置行数
      4. 设置正文  setItem(row,col,QTableWidgetItem)
      5. 添加赵云
        1. 判断是否为空
        2. 为空 添加 insertRow
      6. 删除赵云
        1. 判断是否为空
        2. 先确定赵云所在的row
        3. removeRow
    5. 其他常用控件
      1. stackedwidget 栈容器
        1. 设置所以 setCurrentIndex
      2. 下拉框
        1. addItem添加项目
      3. 利用QLabel显示图片
        1. setPixmap(QPixmap(“文件路径”))
      4. 利用QLabel显示gif图片
        1.       QMovie * movie = new QMovie(":/Image/mario.gif");
        2.     ui->label_gif->setMovie(movie);
        3.     movie->start();

 

你可能感兴趣的:(QT学习心得)