QT QMianWindow类

Posted 庖丁解牛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT QMianWindow类相关的知识,希望对你有一定的参考价值。

QMianWindow是一个为用户提供主窗口程序的类,包含一个菜单栏(menu bar)、及一个中心部件(central widget),是许多应用程序的基础,如文本编辑器等。
QMainWindow中菜单需要QMenu类和QAction类来实现。
QAction类定义了菜单的具体行为。
QMainWindow中提供了menuBar()函数返回一个menuBar.
通过调用menuBar的addMenu函数就可以生成一个新的菜单项。
QMenu类addAction函数为菜单指定一个QAction。
QMainWindow中提供了自己的布局空间,所以不需要再为QMainWindow定义布局控件。
//mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QAction>
#include <QMenu>
#include <QMenuBar>
#include <QTextEdit>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();
private:
    QAction *open1,*exit1;
    QMenu *menu1;
    QTextEdit *edit1;
private slots:
    void myopenfile();
    void exitmywindow();

};

#endif // MAINWINDOW_H
//mainwindow.cpp
#include "mainwindow.h"

#include <QFileDialog>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    open1=new QAction(tr("打开"),this);
    //设置快捷键
    open1->setShortcut(tr("Ctrl+O"));
    exit1=new QAction(tr("退出"),this);
    exit1->setShortcut(tr("Ctrl+Q"));
    //添加菜单
    /*
     * 详细写法
     * QMenuBar *menub1= menuBar();
     *  menub1->addMenu(tr("文件"));*/
    menu1=menuBar()->addMenu(tr("文件"));
    //加入菜单项
    menu1->addAction(open1);
    menu1->addAction(exit1);
    edit1=new QTextEdit();
    //设置中央控件
    this->setCentralWidget(edit1);
    //点击action
    /*注意:triggered()是菜单下的点击事件,并非clicked()函数*/
    connect(open1,SIGNAL(triggered()),this,SLOT(myopenfile()));
    connect(exit1,SIGNAL(triggered()),this,SLOT(exitmywindow()));
}

MainWindow::~MainWindow()
{

}

void MainWindow::exitmywindow()
{
    this->close();
}

void MainWindow::myopenfile()
{
    QString s=QFileDialog::getOpenFileName();
}

以上是关于QT QMianWindow类的主要内容,如果未能解决你的问题,请参考以下文章

26.Qt Quick QML-RotationAnimationPathAnimationSmoothedAnimationBehaviorPauseAnimationSequential(代码片段

Qt编程遇到的问题,我在qt中直接使用C语言的程序片段,有问题 ,求解

如何通过单击片段内的线性布局从片段类开始新活动?下面是我的代码,但这不起作用

elasticsearch代码片段,及工具类SearchEsUtil.java

Android 逆向类加载器 ClassLoader ( 类加载器源码简介 | BaseDexClassLoader | DexClassLoader | PathClassLoader )(代码片段

为啥片段类应该是公开的?