Qt MainWindow 程序主窗口

QMainWindow 是Qt预定义的一个 主窗口类。

 

下面创建一个主窗口

先新建一个工程。选择桌面应用程序,然后默认,完成创建工程。

#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}

运行,生成一个窗口

这个就是 程序主窗口

 

它实现窗口的最基本的功能(最小化、放大、关闭等),但是显然我们还要在上面添加自己的功能。

 

添加动作

QAction 类是动作。这个类代表了窗口的一个“动作”,比如用户点击菜单时,程序做出响应。

QAction 包含了图标、菜单文字、快捷键等信息。//(当把QAction对象添加到程序中时,Qt自动选择用哪个属性表示)

 

下面来使用QAction

在MainWindow中使用QAction:

mainwindow.h

说明:在类MainWindow中添加了private函数open()和private变量 openAction

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
     MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    void open();

    QAction *openAction;
};

#endif // MAINWINDOW_H

mainwindow.cpp

说明:

在MainWindow的构造函数中,第一行调用setWindowTitle()来设置标题 //先忽略tr函数的意思

然后创建openAction 对象,传入了一个图标QIcon(“图标路径”),一个文本,前面有& 意味着将成为快捷键(),一个指针(此处先略过) //这里图标可能显示有问题(显示空白),不过不影响,先跳过去

下一行使用setShortcuts()来说明这个快捷键,QKeySequence定义了很多快捷键,直接用它的Open。

下一行使用setStatusTip,当鼠标移动到这个action时,在窗口下方显示提示。

之后用connect连接

下面的menuBar()toolBar()statusBar()三个是QMainWindow的函数,用于创建并返回菜单栏、工具栏和状态栏。

#include <QAction>
#include <QMenuBar>
#include <QMessageBox>
#include <QStatusBar>
#include <QToolBar>

#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent)
{
    setWindowTitle(tr("Main Window"));

    openAction = new QAction(QIcon(":/images/doc-open"), tr("&Open..."), this);
    openAction->setShortcuts(QKeySequence::Open);
    openAction->setStatusTip(tr("Open an existing file"));
    connect(openAction, &QAction::triggered, this, &MainWindow::open);

    QMenu *file = menuBar()->addMenu(tr("&File"));
    file->addAction(openAction);

    QToolBar *toolBar = addToolBar(tr("&File"));
    toolBar->addAction(openAction);

    statusBar() ;
}

MainWindow::~MainWindow()
{
}

void MainWindow::open()
{
    QMessageBox::information(this, tr("Information"), tr("Open"));
}

main.cpp

#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow win;
    win.show();

    return a.exec();
}

小结:

Qt MainWindow类 是程序的主窗口。

给MainWindow设置属性可改变主窗口,

给MainWindow添加动作(QAction)让程序做出响应。

在这个例子中,

在类MainWindow中添加了private函数open()和private变量 openAction,即添加打开动作。

在类MainWindow的构造函数中,设置了窗口标题,图标、快捷键、提示,增加了菜单栏、工具栏和状态栏。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只大鸽子

如有帮助,欢迎关注同名公众号

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值