QT 作业 day4

ops/2025/3/5 14:23:18/

作业

代码

Widget.h

class Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();private slots:// 槽函数void on_listWidget_itemDoubleClicked(QListWidgetItem *item);private:Ui::Widget *ui;
};
#endif

Widget.cpp

Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);
}Widget::~Widget()
{delete ui;
}// 槽函数
void Widget::on_listWidget_itemDoubleClicked(QListWidgetItem *item)
{int page = ui->listWidget->row(item);ui->stackedWidget->setCurrentIndex(page);    //跳转相应页面
}

效果

题目

代码

继承QListWidget 重写 其菜单事件

(可以不继承,在Widget中使用菜单事件)

MyListWidget.h

class MyQListWidget : public QListWidget
{Q_OBJECT
public:MyQListWidget(QWidget* parent = nullptr);//菜单事件virtual void contextMenuEvent(QContextMenuEvent *event) override;
public slots:void on_action_triggered();private:QMenu* menu;QListWidgetItem* item_clicked;
};#endif

MyListWidget.cpp

MyQListWidget::MyQListWidget(QWidget *parent):QListWidget(parent)
{menu = new QMenu(this);                         //创建menuQAction* del_action =menu->addAction("删除");    //创建actionQObject::connect(del_action,&QAction::triggered,this,&MyQListWidget::on_action_triggered);
}void MyQListWidget::contextMenuEvent(QContextMenuEvent *event)
{item_clicked=itemAt(event->pos());  //判断触发菜单事件时,鼠标位置是否有itemif(item_clicked != nullptr)         //鼠标位置有item{qDebug() << "点中了item";menu->exec(event->globalPos()); //显示菜单}
}void MyQListWidget::on_action_triggered()
{qDebug() << "执行删除操作";int row = this->row(item_clicked);  //被点击的item在listWidget中是第几个this->takeItem(row);    //删除该item
}

效果

/*************************************************分割线*************************************************/

作业

思路

继承listWidget,重写其“鼠标点击”事件,创建menu

代码

重载后的MylistWidget.h

class MyQListWidget : public QListWidget
{Q_OBJECT
public:MyQListWidget(QWidget* parent = nullptr);virtual void mousePressEvent(QMouseEvent *event) override;
private:QMenu* menu;
};#endif

MylistWidget.cpp

MyQListWidget::MyQListWidget(QWidget *parent):QListWidget(parent)
{menu = new QMenu(this);                         //创建menuQAction* del_action =menu->addAction("删除");     //创建actionmenu->triggered(del_action);                    //添加监视//设定触发信号所连接的槽函数QObject::connect(del_action,&QAction::triggered,this,&MyQListWidget::on_action_triggered);
}void MyQListWidget::mousePressEvent(QMouseEvent *event)
{//运行到此说明鼠标按下//如果"鼠标右键"按下if (event->button() == Qt::RightButton){//判断"鼠标右键"位置是否有itemif (itemAt(event->pos()) != nullptr){qDebug() << "鼠标右键单击一次";menu->exec(event->globalPos());         //显示 示例中QMouseEventmenu_open_flag=1;}}
}void MyQListWidget::on_action_triggered()
{qDebug() << "执行删除操作";
}

效果

右键点中item , 弹出menu

点中,执行删除操作

未被点中,无反应


http://www.ppmy.cn/ops/163327.html

相关文章

Nerf流程

一.数据处理&#xff1a; 在输入数据时&#xff0c;并没有给出相机的内参与外参&#xff0c;需要在数据处理得出相机的内外惨数&#xff0c;作者使用COLMAP得到相机参数后&#xff0c;转成NeRF可以读取的格式即可以用于模型训练。 旋转矩阵的第一列到第三列分别表示了相机坐标系…

腾讯 TDF 即将开源 Kuikly 跨端框架,Kotlin 支持全平台

今天&#xff0c;在腾讯的 Shiply 平台看 Flutter 动态化自研框架 Conch 时&#xff0c;在侧边栏看到了有「跨端开发框架」的介绍&#xff0c;点开发现有两个产品&#xff1a; Hippy&#xff1a;面向前端技术栈的跨端开发框架&#xff0c;Web原生开发体验&#xff0c;支持 Rea…

HttpServletRequest、ServerHttpRequest 和 ServerWebRequest作用详解

1、HttpServletRequest 所属框架&#xff1a;Java Servlet API&#xff08;基于阻塞式 I/O&#xff09;。 使用场景&#xff1a;传统的 Servlet 应用&#xff08;如 Spring MVC的Tomcat、常用的容器等等&#xff09;。 作用&#xff1a;表示客户端的 HTTP 请求。 常用方法&a…

【JQuery—前端快速入门】JQuery 基础语法

JQuery JQuery是一个快速、简洁且功能丰富的JavaScript框架; 1. 引入依赖 使用JQuery需要先引入对应的库&#xff1b; 在使用 JQuery CDN 时&#xff0c;只需要在 HTML 文档中加入如下代码 <script src"https://code.jquery.com/jquery-3.7.1.min.js"></s…

0304作业

思维导图 作业1 在终端提示输入一个成绩&#xff0c;通过shell判断该成绩的等级 [90,100]:A [80, 90):B [70, 80):C [60, 70): D [0,60):不及格 #!/bin/bash read -p "请输入成绩&#xff1a;" score if [ "$score" -ge 0 -a "$score" -lt 60 …

现今大语言模型性能(准确率)比较

现今大语言模型性能(准确率)比较 表头信息:表的标题为“大语言模型性能比较结果”(英文:Table 1: Large Language Model Performance Comparison Results),表明该表是用于对比不同大语言模型的性能。列信息: 模型:列出参与比较的不同大语言模型名称,包括LLAMA3(70B)…

网络安全有必要学编程吗?

当下编程已经成为一种必备技能&#xff0c;尤其是在数字化和科技快速发展的时代&#xff0c;掌握编程技能对我们的职业发展有着重要的作用&#xff0c;那么网络安全需要学编程吗?这也是很多小伙伴关心的问题&#xff0c;我们来看看吧。 需要&#xff0c;网络安全需要学习编程。…

Spring Boot 监听器(Listeners)详细教程

Spring Boot 监听器&#xff08;Listeners&#xff09;详细教程 目录 Spring Boot 监听器概述监听器核心概念最佳使用场景实现步骤高级配置详细使用场景总结 1. Spring Boot 监听器概述 Spring Boot 监听器&#xff08;Listeners&#xff09;基于 Spring Framework 的事件机制…