zoukankan      html  css  js  c++  java
  • 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();
    }

  • 相关阅读:
    SSL测试百度握手协议,下载百度CA证书
    新浪微博推荐之股神一探究竟,是大神?
    IPQ4019开发板使用 openWRT开发(第2篇)未完成!!!
    IPQ4019开发板使用硬件和启动(第一篇)
    2020-01-17 学习笔记(1)
    Kube-DNS搭建(1.4版本)
    Kubernetes持久化存储2——探究实验
    Kubernetes持久化存储1——示例
    Kubernetes部分Volume类型介绍及yaml示例
    Kubernetes外挂配置管理—ConfigMap介绍
  • 原文地址:https://www.cnblogs.com/zhanggaofeng/p/6005920.html
Copyright © 2011-2022 走看看