📄 qwt__abstract__slider_8cpp-source.html
字号:
<a name="l00379"></a>00379 <span class="keywordflow">if</span> ( !<a class="code" href="class_qwt_abstract_slider.html#87c750f098cb5f70306a7908339cb88e">isValid</a>() )<a name="l00380"></a>00380 <span class="keywordflow">return</span>;<a name="l00381"></a>00381 <a name="l00382"></a>00382 <span class="keywordtype">int</span> increment = 0;<a name="l00383"></a>00383 <span class="keywordflow">switch</span> ( e->key() ) <a name="l00384"></a>00384 {<a name="l00385"></a>00385 <span class="keywordflow">case</span> Qt::Key_Down:<a name="l00386"></a>00386 <span class="keywordflow">if</span> ( <a class="code" href="class_qwt_abstract_slider.html#4d2521b9c31ec64b71d8e1771b156d88">orientation</a>() == Qt::Vertical )<a name="l00387"></a>00387 increment = -1;<a name="l00388"></a>00388 <span class="keywordflow">break</span>;<a name="l00389"></a>00389 <span class="keywordflow">case</span> Qt::Key_Up:<a name="l00390"></a>00390 <span class="keywordflow">if</span> ( <a class="code" href="class_qwt_abstract_slider.html#4d2521b9c31ec64b71d8e1771b156d88">orientation</a>() == Qt::Vertical )<a name="l00391"></a>00391 increment = 1;<a name="l00392"></a>00392 <span class="keywordflow">break</span>;<a name="l00393"></a>00393 <span class="keywordflow">case</span> Qt::Key_Left:<a name="l00394"></a>00394 <span class="keywordflow">if</span> ( <a class="code" href="class_qwt_abstract_slider.html#4d2521b9c31ec64b71d8e1771b156d88">orientation</a>() == Qt::Horizontal )<a name="l00395"></a>00395 increment = -1;<a name="l00396"></a>00396 <span class="keywordflow">break</span>;<a name="l00397"></a>00397 <span class="keywordflow">case</span> Qt::Key_Right:<a name="l00398"></a>00398 <span class="keywordflow">if</span> ( <a class="code" href="class_qwt_abstract_slider.html#4d2521b9c31ec64b71d8e1771b156d88">orientation</a>() == Qt::Horizontal )<a name="l00399"></a>00399 increment = 1;<a name="l00400"></a>00400 <span class="keywordflow">break</span>;<a name="l00401"></a>00401 <span class="keywordflow">default</span>:;<a name="l00402"></a>00402 e->ignore();<a name="l00403"></a>00403 }<a name="l00404"></a>00404 <a name="l00405"></a>00405 <span class="keywordflow">if</span> ( increment != 0 )<a name="l00406"></a>00406 {<a name="l00407"></a>00407 <a class="code" href="class_qwt_double_range.html#299c35c72e9b69f5a0e3dcd2b7da775b">QwtDoubleRange::incValue</a>(increment);<a name="l00408"></a>00408 <span class="keywordflow">if</span> (value() != prevValue())<a name="l00409"></a>00409 emit sliderMoved(value());<a name="l00410"></a>00410 }<a name="l00411"></a>00411 }<a name="l00412"></a>00412 <a name="l00417"></a><a class="code" href="class_qwt_abstract_slider.html#26f4d684524925891113d46ffe383b5d">00417</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_abstract_slider.html#26f4d684524925891113d46ffe383b5d">QwtAbstractSlider::timerEvent</a>(QTimerEvent *)<a name="l00418"></a>00418 {<a name="l00419"></a>00419 <span class="keyword">const</span> <span class="keywordtype">double</span> inc = <a class="code" href="class_qwt_double_range.html#0cb8cc60548c10cb1d98e54387961967">step</a>();<a name="l00420"></a>00420 <a name="l00421"></a>00421 <span class="keywordflow">switch</span> (d_data->scrollMode)<a name="l00422"></a>00422 {<a name="l00423"></a>00423 <span class="keywordflow">case</span> ScrMouse:<a name="l00424"></a>00424 {<a name="l00425"></a>00425 <span class="keywordflow">if</span> (d_data->mass > 0.0)<a name="l00426"></a>00426 {<a name="l00427"></a>00427 d_data->speed *= exp( - <span class="keywordtype">double</span>(d_data->updTime) * 0.001 / d_data->mass );<a name="l00428"></a>00428 <span class="keyword">const</span> <span class="keywordtype">double</span> newval = <a name="l00429"></a>00429 <a class="code" href="class_qwt_double_range.html#705b76d28882d37bc5313d6c38c9a720">exactValue</a>() + d_data->speed * double(d_data->updTime);<a name="l00430"></a>00430 <a class="code" href="class_qwt_double_range.html#63bc8ea5e7ecd776b7d32d21db1ea668">QwtDoubleRange::fitValue</a>(newval);<a name="l00431"></a>00431 <span class="comment">// stop if d_data->speed < one step per second</span><a name="l00432"></a>00432 <span class="keywordflow">if</span> (fabs(d_data->speed) < 0.001 * fabs(<a class="code" href="class_qwt_double_range.html#0cb8cc60548c10cb1d98e54387961967">step</a>()))<a name="l00433"></a>00433 {<a name="l00434"></a>00434 d_data->speed = 0;<a name="l00435"></a>00435 <a class="code" href="class_qwt_abstract_slider.html#b648229c972d0c3258d30b0c43eb5efc">stopMoving</a>();<a name="l00436"></a>00436 buttonReleased();<a name="l00437"></a>00437 }<a name="l00438"></a>00438 <a name="l00439"></a>00439 }<a name="l00440"></a>00440 <span class="keywordflow">else</span><a name="l00441"></a>00441 <a class="code" href="class_qwt_abstract_slider.html#b648229c972d0c3258d30b0c43eb5efc">stopMoving</a>();<a name="l00442"></a>00442 <span class="keywordflow">break</span>;<a name="l00443"></a>00443 }<a name="l00444"></a>00444 <a name="l00445"></a>00445 <span class="keywordflow">case</span> ScrPage:<a name="l00446"></a>00446 {<a name="l00447"></a>00447 <a class="code" href="class_qwt_double_range.html#19b85337d4ab0b5f0579b02e4fb29a8f">QwtDoubleRange::incPages</a>(d_data->direction);<a name="l00448"></a>00448 <span class="keywordflow">if</span> (!d_data->timerTick) <a name="l00449"></a>00449 {<a name="l00450"></a>00450 killTimer(d_data->tmrID);<a name="l00451"></a>00451 d_data->tmrID = startTimer(d_data->updTime);<a name="l00452"></a>00452 }<a name="l00453"></a>00453 <span class="keywordflow">break</span>;<a name="l00454"></a>00454 }<a name="l00455"></a>00455 <span class="keywordflow">case</span> ScrTimer:<a name="l00456"></a>00456 {<a name="l00457"></a>00457 <a class="code" href="class_qwt_double_range.html#63bc8ea5e7ecd776b7d32d21db1ea668">QwtDoubleRange::fitValue</a>(<a class="code" href="class_qwt_double_range.html#7777cf257c812579c4891512f1b6cad0">value</a>() + <span class="keywordtype">double</span>(d_data->direction) * inc);<a name="l00458"></a>00458 <span class="keywordflow">if</span> (!d_data->timerTick) <a name="l00459"></a>00459 {<a name="l00460"></a>00460 killTimer(d_data->tmrID);<a name="l00461"></a>00461 d_data->tmrID = startTimer(d_data->updTime);<a name="l00462"></a>00462 }<a name="l00463"></a>00463 <span class="keywordflow">break</span>;<a name="l00464"></a>00464 }<a name="l00465"></a>00465 <span class="keywordflow">default</span>:<a name="l00466"></a>00466 {<a name="l00467"></a>00467 <a class="code" href="class_qwt_abstract_slider.html#b648229c972d0c3258d30b0c43eb5efc">stopMoving</a>();<a name="l00468"></a>00468 <span class="keywordflow">break</span>;<a name="l00469"></a>00469 }<a name="l00470"></a>00470 }<a name="l00471"></a>00471 <a name="l00472"></a>00472 d_data->timerTick = 1;<a name="l00473"></a>00473 }<a name="l00474"></a>00474 <a name="l00475"></a>00475 <a name="l00484"></a><a class="code" href="class_qwt_abstract_slider.html#2f04dc51e4402b51fef3250bcc99dc7f">00484</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_abstract_slider.html#2f04dc51e4402b51fef3250bcc99dc7f">QwtAbstractSlider::valueChange</a>() <a name="l00485"></a>00485 {<a name="l00486"></a>00486 <span class="keywordflow">if</span> (d_data->tracking)<a name="l00487"></a>00487 emit <a class="code" href="class_qwt_abstract_slider.html#6bc5c410cd56119c6ad50743c9a46af1">valueChanged</a>(<a class="code" href="class_qwt_double_range.html#7777cf257c812579c4891512f1b6cad0">value</a>()); <a name="l00488"></a>00488 }<a name="l00489"></a>00489 <a name="l00507"></a><a class="code" href="class_qwt_abstract_slider.html#305b137fe4dd80cba307fe1b4bd46272">00507</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_abstract_slider.html#305b137fe4dd80cba307fe1b4bd46272">QwtAbstractSlider::setMass</a>(<span class="keywordtype">double</span> val)<a name="l00508"></a>00508 {<a name="l00509"></a>00509 <span class="keywordflow">if</span> (val < 0.001)<a name="l00510"></a>00510 d_data->mass = 0.0;<a name="l00511"></a>00511 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (val > 100.0)<a name="l00512"></a>00512 d_data->mass = 100.0;<a name="l00513"></a>00513 <span class="keywordflow">else</span><a name="l00514"></a>00514 d_data->mass = val;<a name="l00515"></a>00515 }<a name="l00516"></a>00516 <a name="l00521"></a><a class="code" href="class_qwt_abstract_slider.html#130105fc2001c53cea65f21b03f0b5db">00521</a> <span class="keywordtype">double</span> <a class="code" href="class_qwt_abstract_slider.html#130105fc2001c53cea65f21b03f0b5db">QwtAbstractSlider::mass</a>()<span class="keyword"> const</span><a name="l00522"></a>00522 <span class="keyword"></span>{ <a name="l00523"></a>00523 <span class="keywordflow">return</span> d_data->mass; <a name="l00524"></a>00524 }<a name="l00525"></a>00525 <a name="l00526"></a>00526 <a name="l00535"></a><a class="code" href="class_qwt_abstract_slider.html#c3713f8989b647cb79f0a5894991e36a">00535</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_abstract_slider.html#c3713f8989b647cb79f0a5894991e36a">QwtAbstractSlider::setValue</a>(<span class="keywordtype">double</span> val)<a name="l00536"></a>00536 {<a name="l00537"></a>00537 <span class="keywordflow">if</span> (d_data->scrollMode == ScrMouse) <a name="l00538"></a>00538 <a class="code" href="class_qwt_abstract_slider.html#b648229c972d0c3258d30b0c43eb5efc">stopMoving</a>();<a name="l00539"></a>00539 <a class="code" href="class_qwt_double_range.html#f6a3aa74c970a2bef29f0c1af99720e8">QwtDoubleRange::setValue</a>(val);<a name="l00540"></a>00540 }<a name="l00541"></a>00541 <a name="l00542"></a>00542 <a name="l00550"></a><a class="code" href="class_qwt_abstract_slider.html#50ed1e265beaa1c8adbe718caa023e50">00550</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_abstract_slider.html#50ed1e265beaa1c8adbe718caa023e50">QwtAbstractSlider::fitValue</a>(<span class="keywordtype">double</span> value)<a name="l00551"></a>00551 {<a name="l00552"></a>00552 <span class="keywordflow">if</span> (d_data->scrollMode == ScrMouse) <a name="l00553"></a>00553 <a class="code" href="class_qwt_abstract_slider.html#b648229c972d0c3258d30b0c43eb5efc">stopMoving</a>();<a name="l00554"></a>00554 <a class="code" href="class_qwt_double_range.html#63bc8ea5e7ecd776b7d32d21db1ea668">QwtDoubleRange::fitValue</a>(value);<a name="l00555"></a>00555 }<a name="l00556"></a>00556 <a name="l00562"></a><a class="code" href="class_qwt_abstract_slider.html#5fccdb2ca370bba9ed4d29864fd80788">00562</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_abstract_slider.html#5fccdb2ca370bba9ed4d29864fd80788">QwtAbstractSlider::incValue</a>(<span class="keywordtype">int</span> steps)<a name="l00563"></a>00563 {<a name="l00564"></a>00564 <span class="keywordflow">if</span> (d_data->scrollMode == ScrMouse) <a name="l00565"></a>00565 <a class="code" href="class_qwt_abstract_slider.html#b648229c972d0c3258d30b0c43eb5efc">stopMoving</a>();<a name="l00566"></a>00566 <a class="code" href="class_qwt_double_range.html#299c35c72e9b69f5a0e3dcd2b7da775b">QwtDoubleRange::incValue</a>(steps);<a name="l00567"></a>00567 }<a name="l00568"></a>00568 <a name="l00569"></a><a class="code" href="class_qwt_abstract_slider.html#120e5a03094ef0baf793000972a21722">00569</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_abstract_slider.html#120e5a03094ef0baf793000972a21722">QwtAbstractSlider::setMouseOffset</a>(<span class="keywordtype">double</span> offset)<a name="l00570"></a>00570 {<a name="l00571"></a>00571 d_data->mouseOffset = offset;<a name="l00572"></a>00572 } <a name="l00573"></a>00573 <a name="l00574"></a><a class="code" href="class_qwt_abstract_slider.html#138397a755057932b5da72f526fc74e6">00574</a> <span class="keywordtype">double</span> <a class="code" href="class_qwt_abstract_slider.html#138397a755057932b5da72f526fc74e6">QwtAbstractSlider::mouseOffset</a>()<span class="keyword"> const</span><a name="l00575"></a>00575 <span class="keyword"></span>{<a name="l00576"></a>00576 <span class="keywordflow">return</span> d_data->mouseOffset;<a name="l00577"></a>00577 }<a name="l00578"></a>00578 <a name="l00579"></a><a class="code" href="class_qwt_abstract_slider.html#4a1b9e022180a8567f09632388002396">00579</a> <span class="keywordtype">int</span> <a class="code" href="class_qwt_abstract_slider.html#4a1b9e022180a8567f09632388002396">QwtAbstractSlider::scrollMode</a>()<span class="keyword"> const</span><a name="l00580"></a>00580 <span class="keyword"></span>{<a name="l00581"></a>00581 <span class="keywordflow">return</span> d_data->scrollMode;<a name="l00582"></a>00582 }</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Feb 26 21:22:36 2007 for Qwt User's Guide by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -