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()函数,所以此法不行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值