Qt笔记之 界面控件

界面控件

QMainWindow

窗口结构

菜单栏和工具栏

#include "mainwindow.h"
#include <QMenuBar>
#include <QToolBar>

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::RightToolBarArea,toolBar);

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

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

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

    // 工具栏中设置菜单项
    toolBar->addAction(newAction);
    toolBar->addSeparator();
    toolBar->addAction(openAction);
}

MainWindow::~MainWindow()
{
    delete toolBar;
}

效果:

状态栏-浮动窗口和中心部件

#include "mainwindow.h"
#include <QMenuBar>
#include <QToolBar>
#include <QLabel>
#include <QStatusBar>
#include <QDockWidget>
#include <QTextEdit>

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 *labell = new QLabel("左侧信息");
    stBar->addWidget(labell);

    QLabel *labell2 = new QLabel("右侧信息");
    stBar->addPermanentWidget(labell2); // 从右往左添加

    // 铆接部件 浮动窗口 可以有多个
    QDockWidget *dockWidget = new QDockWidget("浮动窗口",this);
    addDockWidget(Qt::BottomDockWidgetArea,dockWidget);
    // 只允许上下停靠
    dockWidget->setAllowedAreas(Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea);

    // 核心部件 中心部件
    QTextEdit *textEdit = new QTextEdit(this);
    setCentralWidget(textEdit);
}

MainWindow::~MainWindow()
{
    delete toolBar;
    delete labell;
    delete labell2;
    delete dockWidget;
    delete textEdit;
}

资源文件的添加

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this); // 放入到程序的最上侧

    // 在新建菜单上添加图片
    // ui->actionNew->setIcon(QIcon("D:\资源\图片\1.png"));

    // 添加文件:res.qrc
    // 使用:: + 前缀名 + 文件名
    ui->actionNew->setIcon(QIcon(":/1.png"));
}

MainWindow::~MainWindow()
{
    delete ui;
}

添加res文件:

添加资源:

原文地址:https://www.cnblogs.com/zhujiangyu/p/14190583.html