Qt下重做右键菜单

来源:互联网 发布:手机流水账软件 编辑:程序博客网 时间:2024/06/16 15:55

这个关键是之前不太了解,其实很简单,贴出来分享下。

QAction *pNew;
     pNew = new QAction("剪切                 Ctrl+X",ui->tabWidget_2);
     connect(pNew,SIGNAL(triggered(bool)),this,SLOT(cut()));
     addAction(pNew);
     QAction *pNew1 = new QAction("复制                 Ctrl+C",ui->tabWidget_2);
     connect(pNew1,SIGNAL(triggered(bool)),this,SLOT(copy()));
     addAction(pNew1);
     QAction *pNew2 = new QAction ("粘贴                 Ctrl+V",ui->tabWidget_2);
     connect(pNew2,SIGNAL(triggered(bool)),this,SLOT(paste()));
     addAction(pNew2);

这里我是做了一个右键菜单,分别设置槽函数,在槽函数中

void MainWindow::cut(){
    QLineEdit *current_focus_widget;
    current_focus_widget = dynamic_cast<QLineEdit*>(QApplication::focusWidget());
    if (current_focus_widget->inherits("QLineEdit"))
    {
        qDebug() << "get the focus";
    }
    QClipboard *board = QApplication::clipboard();
    board->setText(current_focus_widget->text());
    current_focus_widget->setText("");
    qDebug() << "name" << sender()->objectName();
}
获取焦点控件,然后将focusWidget()返回值强转为QLineEdit类型就可以直接获取值了。

0 0