QDateTimeEdit 日历添加右侧按钮图标

一、背景

工作需要,我做了一个QDateTimeEdit 和QCalendarWidget用于通过日历来选取时间,参考:自定义日历 结果如下图,其弹出按钮位置我想添加一个日历小图标,但是QDateTimeEdit 中似乎并没有单独为右侧按钮设计样式的功能(或许是我没找到,有知道方法者请告知,感谢Thanks♪(・ω・)ノ)

在这里插入图片描述

二、成功实现

于是我做了一个pushbutton,在pushbutton上添加日历图片,将pushbutton移动到QDateTimeEdit 的按钮的位置,再使pushbutton置于上层,最后使点击pushbutton的信号传递到QDateTimeEdit 的按钮。代码如下:

 dateEdit = new QDateTimeEdit(QDate::currentDate(), this);
    dateEdit->setGeometry(60,52,151,40);
  //  dateEdit->setFocusPolicy(Qt::NoFocus);      //设置文本框不能编辑
    dateEdit->setToolTip("选择日期");
    //添加图片和设置背景色
    ui->pushButton->setStyleSheet("image: url(:/rec/calendar_icon.png);background-color: rgb(255, 255, 255);");
    ui->pushButton->raise();     //置于上层
    ui->pushButton->setAttribute(Qt::WA_TransparentForMouseEvents);//点击信号可穿透pushbutton到达dateEdit

如此,结果就如下图:
在这里插入图片描述

三、走的弯路

1.使用QLabel添加图片
我起初想法是将图片放到QLabel中,在向上面的方法一样将label放到对应位置,但是label总是被QDateTimeEdit 盖住无法显示,label->setParent(dateEdit);不起作用,label也无法使用raise()函数,所以此法不行。

猜你喜欢

转载自blog.csdn.net/qq_41104439/article/details/128248349