fix(ui): 修日期日历面板错乱-popup 父对象改顶层窗口避开下拉项样式
DateRangeEdit 改 QComboBox 子类后,日历 popup 成 QComboBox 后代 → 日历内部日期网格 (QAbstractItemView)吃到全局「QComboBox QAbstractItemView::item」(padding 6px10px/min-height 20px) 下拉列表项样式 → 日期格重叠错位、无星期表头。修:popup 父对象用顶层 window() 而非本 combo, 日历不再是 QComboBox 后代,该 QSS 不匹配 → 日历恢复正常渲染。 注:本地链接因 app 运行中 exe 被锁(LNK1104)未完成,obj 已编译通过;关 app 后重 build 即生效。
This commit is contained in:
parent
5c412eedfa
commit
63ebf7d4f1
|
|
@ -20,7 +20,10 @@ DateRangeEdit::DateRangeEdit(QWidget* parent) : QComboBox(parent) {
|
|||
|
||||
void DateRangeEdit::showPopup() {
|
||||
if (!popup_) {
|
||||
popup_ = new QFrame(this, Qt::Popup);
|
||||
// 父对象用顶层窗口而非本 combo:否则日历(QAbstractItemView)成 QComboBox 后代,吃到全局
|
||||
// 「QComboBox QAbstractItemView::item」下拉项样式(padding/min-height)→ 日期格重叠错位。
|
||||
QWidget* owner = window() ? static_cast<QWidget*>(window()) : nullptr;
|
||||
popup_ = new QFrame(owner, Qt::Popup);
|
||||
popup_->setFrameShape(QFrame::StyledPanel);
|
||||
applyTokenizedStyleSheet(
|
||||
popup_, QStringLiteral("QFrame{background:{{bg/panel}};border:1px solid {{border/default}};"
|
||||
|
|
|
|||
Loading…
Reference in New Issue