Qt [GC9-7]:控制台基本设置及增加鼠标右键菜单和键盘事件

Qt [GC9-7]:控制台基本设置及增加鼠标右键菜单和键盘事件Qt [GC9-7]:控制台基本设置及增加鼠标右键菜单和键盘事件

目前美化效果就是把TabWidget变透明、设置控制台名称、并且隐藏TabBar和标题栏。代码如下

this->setWindowTitle("控制台");        //设置程序名称
    this->setWindowFlag(Qt::FramelessWindowHint);       //隐藏标题栏
    ui->tabWidget_controlPanel->tabBar()->hide();       //隐藏TabBar
    ui->tabWidget_controlPanel->setStyleSheet("QTabWidget::pane{border-top: 2px solid #00000000;}");    //设置TabWidget样式表

因为我们隐藏了原本窗口自带的标题栏,所以需要我们自己来实现一个关闭的功能,目前计划使用鼠标和键盘两种方式,鼠标右键菜单弹出关闭按钮和键盘“ESC键”及“Q键”来控制程序关闭。鼠标右键实现如下

Qt [GC9-7]:控制台基本设置及增加鼠标右键菜单和键盘事件

Qt [GC9-7]:控制台基本设置及增加鼠标右键菜单和键盘事件

代码如下

 
void ControlPanel::on_tabWidget_controlPanel_customContextMenuRequested(const QPoint &pos)
{
    Q_UNUSED(pos)
    QMenu *menu = new QMenu(this);
    menu->setStyleSheet("QMenu{background-color: #55f6c82c;border: 1px solid white;}"
                        "QMenu::item{/*background-color: transparent;padding:8px 32px;margin:0px 8px;*/color:#000000;}"
                        "QMenu::item:selected{background-color: #f6c82c;}");
    QAction *action_Close = new QAction("关闭",this);
    menu->addAction(action_Close);
    connect(action_Close,&QAction::triggered,this,[=](){this->close();});
    menu->exec(cursor().pos());
    QList<QAction*> list = menu->actions();
    foreach (QAction* pAction, list) delete pAction;
    delete menu;
}

键盘事件的实现就更加简单了

头文件添加键盘事件引用

#include <QKeyEvent>

重载keyevent,代码如下

 
void ControlPanel::keyReleaseEvent(QKeyEvent *event)
{
    if(event->key() == Qt::Key_Escape || event->key() == Qt::Key_Q)
    {
        this->close();
    }
}

Qt [GC9-7]:控制台基本设置及增加鼠标右键菜单和键盘事件

上一篇:bigint & bigserial


下一篇:Spring MVC文件上传