QComboBox 设置下拉框在上方显示
- 继承QComboBox ,重写showPopup
void TopPopupComboBox::showPopup()
{
//关闭弹出动画,调用基类showPopup
bool blOldAnimation = qApp->isEffectEnabled(Qt::UI_AnimateCombo);
qApp->setEffectEnabled(Qt::UI_AnimateCombo, false);
QComboBox::showPopup();
qApp->setEffectEnabled(Qt::UI_AnimateCombo, blOldAnimation);
//获取QCombox的视图显示控件
QWidget* popup = this->findChild<QWidget*>();
//移动到上方显示
QPoint globalPos = this->mapToGlobal(QPoint(0, 0));
popup->move(globalPos.x() - popup->width() + this->width(), globalPos.y() - popup->height() - 5);
}