鼠标点击 QListWidget 的 item

1
currentItem = this->itemAt(mapFromGlobal(QCursor::pos())); // 不管左键右键都能获取

判断点击区域是否在某个控件里面

1
NameEdit->rect().contains(event->pos())

QMap插入同样key,会覆盖原来的

Lambda 临时函数

1
connect(ui->listWidget,&QListWidget::currentRowChanged,[=](int curindex){ qDebug()<<curindex<<endl; });

QLabel设置字体颜色

1
2
3
4
QLabel *label = new QLabel(tr("Hello Qt!"));
QPalette pe;
pe.setColor(QPalette::WindowText,Qt::white); // 这两行不能合并(构造函数能接受这样的参数)
label->setPalette(pe);
1
setStyleSheet("color:red;");

QSettings 无法保存

出于效率的原因,setValue 不会立既写入(如注册表,INI, XML), 要立既写入可以用sync()函数。

判断按键修饰符

1
2
3
4
5
bool isShortcut = ((e->modifiers() & Qt::ControlModifier) && e->key() == Qt::Key_E);

bool ctrlOrShift = e->modifiers() & (Qt::ControlModifier | Qt::ShiftModifier);

bool hasModifier = (e->modifiers() != Qt::NoModifier) && !ctrlOrShift;