zoukankan      html  css  js  c++  java
  • QT 菜单程序


    MainWindow.h

    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
    
    #include<QMainWindow>
    #include<QMessageBox>
    
    
    class MainWindow : public QMainWindow{
        Q_OBJECT
    public:
        MainWindow();
    
    private slots:
        void fExit();
        void iInfo();
    
    private:
        void createMenus();
        void createActions();
    
        QAction *exit;
        QAction *info;
        QMenu *file;
        QMenu *about;
        QMessageBox *msgBox;
    };
    
    #endif // MAINWINDOW_H
    

    MainWindow.cpp

    #include<QtGui>
    #include"MainWindow.h"
    
    MainWindow::MainWindow(){
        QWidget *widget=new QWidget;
        setCentralWidget(widget);
    
        QWidget *topfiller=new QWidget;
        topfiller->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
    
        QWidget *bottomFiller=new QWidget;
        bottomFiller->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
    
        createActions();
        createMenus();
    
        QVBoxLayout *layout=new QVBoxLayout;
        layout->addWidget(topfiller);
        layout->addWidget(bottomFiller);
        widget->setLayout(layout);
    
        setWindowTitle(tr("Main Window"));
        resize(512,480);
    
    }
    
    void MainWindow::createActions(){
        exit=new QAction(tr("Exit"),this);
        exit->setShortcut(QKeySequence::Close);
        connect(exit,SIGNAL(triggered()),this,SLOT(fExit()));
    
        info =new QAction(tr("Info"),this);
        info->setShortcut(QKeySequence::HelpContents);
        connect(info,SIGNAL(triggered()),this,SLOT(iInfo()));
    
    }
    
    void MainWindow::createMenus(){
        file=menuBar()->addMenu(tr("File"));
        file->addAction(exit);
    
        about=menuBar()->addMenu(tr("About"));
        about->addAction(info);
    }
    
    void MainWindow::fExit(){
        MainWindow::close();
    }
    
    void MainWindow::iInfo(){
        msgBox=new QMessageBox;
        msgBox->setText(tr("hello world"));
        msgBox->setIcon(QMessageBox::Question);
        msgBox->setStandardButtons(QMessageBox::Ok);
        msgBox->exec();
    }
    

    Main.cpp

    #include<QApplication>
    #include"MainWindow.h"
    
    
    int main(int argc,char* argv[]){
        QApplication app(argc,argv);
        MainWindow wnd;
        wnd.show();
        app.exec();
    
    }
    


    运行效果:



  • 相关阅读:
    Lc617_合并二叉树
    Lc257_二叉树的所有路径
    Lc222_完全二叉树的节点个数
    记github下载上传遇到的各种问题
    Lc101_对称二叉树
    Lc222_翻转二叉树
    二叉树的dfs 与 bfs (递归遍历)
    全球最火的程序员学习路线!没有之一!3天就在Github收获了接近1w点赞
    大二逃课总结的1.2w字的计算机网络知识!扫盲!
    「IDEA插件精选」安利一个IDEA骚操作:一键生成方法的序列图
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3161577.html
Copyright © 2011-2022 走看看