我的对话框上有一个 QTimeEdit 小部件,我想提供某种自动更改 - 如果光标位于分钟部分并且时间为 04:59,则下次单击向上箭头会将时间更改为 5:00 。
怎么做?
我看到有人提到 AutoAdvance 属性,但我认为它已经过时了,因为我在 Qt 4.7 中找不到它。
我注意到有一个信号叫void timeChanged ( const QTime & time )
。您可以将其连接到插槽并调用函数void QAbstractSpinBox::stepBy ( int steps )
在槽函数中。
EDIT1:
抱歉造成误导。事实上,我们并不真正需要void timeChanged ( const QTime & time )
。
请参阅下面的代码:
class myTime : public QTimeEdit
{
Q_OBJECT
public:
virtual void stepBy(int steps)
{
if (this->time().minute()==59 && steps>0){
setTime(QTime(time().hour()+1,0,time().second(),time().msec()));
}else if(this->time().minute()==00 && steps<0){
setTime(QTime(time().hour()-1,59,time().second(),time().msec()));
}else{
QTimeEdit::stepBy(steps);
}
}
};
请记住,您需要setWrapping(true)
你自己。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)