0
如果QDial
(包裝屬性設置爲true)是順時針還是逆時針旋轉,有什麼方法可以檢測到?查找QDial是否順時針或逆時針旋轉
如果QDial
(包裝屬性設置爲true)是順時針還是逆時針旋轉,有什麼方法可以檢測到?查找QDial是否順時針或逆時針旋轉
設0爲包裝QDial
的最小值和最大值。如果兩個連續值變化之間的差值爲正值,則表示逆時針旋轉,如果不是,則表示順時針旋轉(必須將其調整爲實際值)
您應該子類QDial
並使用sliderMoved
信號:
當sliderDown爲真且滑塊移動時,發出此信號。 這通常發生在用戶拖動滑塊時。值 是新的滑塊位置。
即使關閉跟蹤,也會發射此信號。
這個信號連接到計算如果旋轉是順時針或逆時針
connect(this, SIGNAL(sliderMoved(int)), this, SLOT(calculateRotationDirection(int)));
void calculateRotationDirection(int v)
{
int difference = previousValue - v;
// make sure we have not reached the start...
if (v == 0)
{
if (previousValue == 100)
direction = DIRECTION_CLOCKWISE;
else
direction = DIRECTION_ANTICLOCKWISE;
}
else if (v == 100)
{
if (previousValue == 0)
direction = DIRECTION_ANTICLOCKWISE;
else
direction = DIRECTION_CLOCKWISE;
}
else
{
if (difference > 0)
direction = DIRECTION_ANTICLOCKWISE; // a simple enum
else if (difference < 0)
direction = DIRECTION_CLOCKWISE;
}
previousValue = v; // store the previous value
}
現在,您可以添加返回子類的direction
屬性功能的插槽。