一、初识
二、鼠标右键
// 实现右键菜单
listUsers -> setContextMenuPolicy(Qt::CustomContextMenu);
connect(listUsers,SIGNAL(customContextMenuRequested(const QPoint&)),this, SLOT(showListMenu(const QPoint&)));
void MainWindow::showListMenu(const QPoint& point){
QMenu *cmenu = new QMenu();
QAction *actDelete = cmenu -> addAction("删除");
QString str = "测试功能,要想删除账号直接在文件中删除!";
connect(actDelete,SIGNAL(triggered(bool)),this,SLOT(getTip(str)));
cmenu -> exec(QCursor::pos()); // 当前鼠标位置
// cmenu -> exec(point); // 在viewport中显示
// 获取当前选定item
// QListWidgetItem *item = listUsers -> currentItem();
// int row = listUsers -> currentRow();
}
三、键盘事件
任何继承QWidget的类都可以重载鼠标事件。
void MainWindow::keyPressEvent(QKeyEvent *e){
if(e -> key() == Qt::Key_Shift){
showListMenu(QPoint());
}
// 调用默认事件
QWidget::keyPressEvent(e);
}