• QT::标题栏/目录/托盘/工具条/状态栏


    菜单栏QMenuBar:由QAction动作组成,一个窗口只能有一个菜单栏,位于窗口的顶部。
    工具栏ToolBar:用于显示菜单项目,可以插入其他窗口部件,可以移动,一个主窗口可以有多个工具栏。
    中心部件Central Widget:在主窗口的中心放入一个中心部件,应用程序的主要实现区域,一个窗口只能有一个中心部件。
    停靠窗口 Dock Widget:停靠中心文件的四周,如工具箱、一个窗口可以有多个Dock部件。
    状态栏QStatusBar:显示程序的状态信息,在主窗口最底部。
    菜单
    QMenu *menu = ui->menuBar->addMenu(tr("&Etid"));//创建主目录
    QAction *action = menu->addAction(QIcon("../"),tr("open file(&o"));//主目录添加下啦目录。
    action->setShortcut(QKeySequence("Ctrl+O"));
    menu->addSeparator();//添加间隔器。
    QMenu、QToolBar控件
    newAct =  new  QAction(QIcon( ":/images/new" ), tr( "新建" ),  this ); 
    newAct->setShortcut(tr("Ctrl+N" )); 
    newAct->setStatusTip(tr("新建文件" )); 
    connect(newAct, SIGNAL(triggered()), this, SLOT(newFile()));
    cutAct = new  QAction(QIcon( ":/images/cut" ), tr( "剪切" ),  this ); 
    cutAct->setShortcut(tr("Ctrl+X" )); 
    cutAct->setStatusTip(tr("剪切内容" ));
    //菜单 
    fileMenu = menuBar()->addMenu(tr( "文件" )); 
    fileMenu->addAction(newAct); 
    fileMenu->addSeparator();
    editMenu = menuBar()->addMenu(tr("编辑" )); 
    editMenu->addAction(cutAct); 
    menuBar()->addSeparator();
    工具栏1
    ui->mainToolBar->addAction(action);//工具栏中添加菜单功能。
    //动作组
    //组中只能有一个被选择,对互斥型动作很有用。
    //动作组
    QActionGroup *group = new QActionGroup(this);
    QAction *action_L = group->addAction(tr("左对齐(L)"));
    action_L->setCheckable(true);
    QAction *action_r = group->addAction(tr("左对齐(r)"));
    action_r->setCheckable(true);
    QAction *action_m = group->addAction(tr("左对齐(m)"));
    action_m->setCheckable(true);
    
    action_L->setChecked(true);
    menu->addSeparator();//添加间隔器。
    menu->addAction(action_L);
    menu->addAction(action_r);
    menu->addAction(action_m);
    
    工具栏2
    QMenu *colormenu = new QMenu;
    colormenu->addAction(tr("red"));
    colormenu->addAction(tr("green"));
    
    //工具栏添加目录菜单
    QToolButton *toolbutton = new QToolButton(this);
    toolbutton->setText(tr("颜色"));
    toolbutton->setMenu(colormenu);
    //菜单弹出方式
    toolbutton->setPopupMode(QToolButton::MenuButtonPopup);
    
    
    ui->mainToolBar->addWidget(toolbutton);
    
    QSpinBox *sbox = new QSpinBox;
    ui->mainToolBar->addWidget(sbox);
    任务栏托盘菜单
    //绘制菜单 
    void MainWindow::createMenu() 
    {    
        restoreWinAction = new QAction("恢复(&R)",this);    
        quitAction = new QAction("退出(&Q)",this);    
        //恢复    
        connect(restoreWinAction,SIGNAL(triggered()),this,SLOT(showNormal()));    
        //退出    
        connect(quitAction,SIGNAL(triggered()),qApp,SLOT(quit()));
        myMenu = new QMenu((QWidget*)QApplication::desktop());    
        //添加菜单   
        myMenu->addAction(restoreWinAction);   
        //分隔符    
        myMenu->addSeparator();    
        myMenu->addAction(quitAction); 
    }
    //恢复 
    void MainWindow::showNormal() 
    {    
        this->show(); 
    }
    //点击最小化按钮隐藏界面 
    void QWidget:: changeEvent(QEvent *e) 
    {    
        if((e->type()==QEvent::WindowStateChange)&&this->isMinimized())   
        {      
            this->hide();   
        } 
    }
    //判断系统是否支持托盘图标 
    if(!QSystemTrayIcon::isSystemTrayAvailable()) 
    {  
        return;
    }
    QSystemTrayIcon myTrayIcon = new QSystemTrayIcon(this);
    //设置图标 
    myTrayIcon->setIcon(QIcon(":/new/prefix1/ico")); 
    //鼠标放托盘图标上提示信息  
    myTrayIcon->setToolTip("Qt托盘图标功能"); 
    //设置消息 
    myTrayIcon->showMessage("托盘","托盘管理",QSystemTrayIcon::Information,10000); 
    //托盘菜单 
    myTrayIcon->setContextMenu(myMenu); 
    //显示 
    myTrayIcon->show();
    QStatusBar:状态栏
    状态信息分为三类:
    1、临时信息    showMessage();
    2、正常信息    addWidget添加一个QLable到状态栏显示
    3、永久信息 addPermanentWidget
    ui->statusBar->showMessage(tr("欢迎使用多文档编辑器"),2000);
    QLabel *lable = new QLabel(this);
    lable->setFrameStyle(QFrame::Box|QFrame::Sunken);
    lable->setText("www.lianlei.com");
    自定义工具栏:
    新建一个类,继承QWidgetAction;重新实现CreatWindow()函数。
  • 相关阅读:
    VS_VERSION_INFO
    ocx中调用ocx
    MFC注册窗口类以及FindWindow按窗口类名查询(避免用#32770获取窗口句柄)
    VS2010制作dll
    CComboBox自动匹配
    ado连接mysql和ORACLE
    正则表达式
    ocx 中使用CImage和CComPtr
    VC ADO “ParameterDirectionEnum”:“enum” 类型等 重定义问题 解决方案
    VC使用ADO连接远程oracle数据库
  • 原文地址:https://www.cnblogs.com/osbreak/p/14342482.html
Copyright © 2020-2023  润新知