-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathqmylistwidget.cpp
More file actions
57 lines (51 loc) · 1.35 KB
/
Copy pathqmylistwidget.cpp
File metadata and controls
57 lines (51 loc) · 1.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include "qmylistwidget.h"
#include <QDebug>
#include <QFont>
QMyListWidget::QMyListWidget(QWidget *parent)
: QListWidget(parent)
{
// 创建一个菜单
contextMenu = new QMenu(this);
dealAction = new QAction(this);
contextMenu->addAction(dealAction);
connect(dealAction, &QAction::triggered, [=](){
emit load('/' + selectedItem);
});
// 调整整个 QListWidget 的字体大小
QFont font = this->font();
font.setPointSize(16); // 设置字体大小为 12,可以根据需要调整
this->setFont(font);
}
QMyListWidget::~QMyListWidget()
{
delete dealAction;
delete contextMenu;
}
void QMyListWidget::setMenu(const QString& name)
{
dealAction->setText(name);
}
void QMyListWidget::mousePressEvent(QMouseEvent *event)
{
// 确保右键点击,然后跳出菜单
if (event->button() == Qt::RightButton)
{
auto item = itemAt(event->pos());
if (item)
{
// 选中右键点击的项目
clearSelection();
item->setSelected(true);
selectedItem = item->text();
if (selectedItem != "..") // 忽略 ".." 项
{
contextMenu->exec(event->globalPos());
}
}
}
else
{
// 保留 QListWidget 原有的点击事件
QListWidget::mousePressEvent(event);
}
}