2017-03-10 81 views
0

我正在嘗試自定義我正在使用的標準滑塊。我不想做太多,我只是想增加我的軌道寬度,並改變矩形的句柄。我查看了文檔,但是我很難理解它。爲了定製賽道的文檔已經顯示出下面的代碼在QT 5.6(QML)中自定義滑塊

track: Rectangle { 
    x: control.leftPadding + (horizontal ? 0 : (control.availableWidth - width)/2) 
    y: control.topPadding + (horizontal ? (control.availableHeight - height)/2 : 0) 
    implicitWidth: horizontal ? 200 : 6 
    implicitHeight: horizontal ? 6 : 200 
    width: horizontal ? control.availableWidth : implicitWidth 
    height: horizontal ? implicitHeight : control.availableHeight 
    radius: 3 
    border.color: "#353637" 
    color: "#ffffff" 
    scale: horizontal && control.mirrored ? -1 : 1 

    readonly property bool horizontal: control.orientation === Qt.Horizontal 
} 

在這裏是什麼control

我正在使用Qt5.6,我正在使用Qt控件實驗室。 有人可以指出我在正確的方向嗎?

+0

在您的代碼段中的*控制*所指的可能是控制QML類型的控制佈局。您可以在這裏找到一些相關信息:https://doc.qt.io/qt-5/qml-qtquick-controls2-control.html – SASUPERNOVA

回答

0

類似於QtQuick.Controls 2.x-文檔,controlid,它被設置爲Slider本身。所以他們用它來引用Slider的屬性。

完整的例子看起來應該是這樣的:

Slider { 
    id: control // <--- see the control here 
    width: 300 
    height: 30 

    track: Rectangle { 
     x: control.leftPadding + (horizontal ? 0 : (control.availableWidth - width)/2) 
     y: control.topPadding + (horizontal ? (control.availableHeight - height)/2 : 0) 
     implicitWidth: horizontal ? 200 : 6 
     implicitHeight: horizontal ? 6 : 200 
     width: horizontal ? control.availableWidth : implicitWidth 
     height: horizontal ? implicitHeight : control.availableHeight 
     radius: 3 
     border.color: "#353637" 
     color: "#ffffff" 
     scale: horizontal && control.mirrored ? -1 : 1 

     readonly property bool horizontal: control.orientation === Qt.Horizontal 
    } 
} 
+0

在他們的自定義滑塊部分。我只能看到賽道部分。我認爲他們應該提供一個更好的解釋。我是否還需要導入QtQucik.control以進一步處理? –

+0

不,你不知道。 Qt.labs.controls是QtQuick.Controls 2.0的遊樂場,我認爲它可以在Qt5.7中使用。你可能會考慮升級到這個版本,甚至5.8甚至更多的最終* QtQuick.Controls 2.0。那裏的名字不會是'追蹤',而是'背景'。但是如果你對'Qt.labs.controls'輕視,並且沒有必要立即升級,那麼不要爲'QtQuick.Controls 1.x'導入那些有另一個滑塊的東西,這很可能更糟糕在表現。 – derM

+0

我覺得用QML製作GUI很勉強,我想做的所有事情只是一件大事,或許我只是吮吸它。但我正在學習,謝謝你的幫助。 –