c++ - Blackberry 10 Cascades 中的布局有问题,qml(C++ 和 QT)

标签 c++ qt qml blackberry-10 blackberry-cascades

我在 Blackberry 10 Cascades 中遇到布局问题。

我有一个qml文件,里面有以下内容:

content: Container {
    Container {
        id: topBar
        objectName: "topBar"
        layout: DockLayout {}
        ImageButton {
            id: back
            objectName: "back"
            defaultImageSource: "asset:///images/back.png"
            onClicked: app.goBack()
            minHeight: 100
            minWidth: 100
            maxHeight: 100
            maxWidth: 100
            horizontalAlignment: HorizontalAlignment.Left
        }
        Label {
            id: heading
            objectName: "heading"
            textStyle { fontSize: FontSize.Large }
            horizontalAlignment: HorizontalAlignment.Center
        }
        ImageButton {
            id: add
            objectName: "add"
            defaultImageSource: "asset:///images/add.png"
            onClicked: app.add()
            minHeight: 100
            minWidth: 100
            maxHeight: 100
            maxWidth: 100
            horizontalAlignment: HorizontalAlignment.Right
        }
        ActivityIndicator {
            id: activityIndicator
            objectName: "activityIndicator"
            minHeight: 100
            minWidth: 100
            maxHeight: 100
            maxWidth: 100
            horizontalAlignment: HorizontalAlignment.Right
        }
    }
}

我试图让后退按钮位于左侧。标题在中间,添加按钮和事件指示器在右边(我希望事件指示器在最右边,但是当它不显示时 - 我希望添加按钮在非常正确)。

我不明白为什么,尽管这些对象都出现在彼此之上(在同一位置)。

最佳答案

在停靠布局中,元素将相互重叠。您的 topBar 容器很可能只占用了容纳最大 child 所需的空间。尝试在 topBar 上设置 Horizo​​ntalAlignment.Fill 或设置 minWidth。

您的后退按钮和事件指示器也会相互重叠。我会将它们放在水平堆栈布局中,以便事件指示器始终位于右侧。

您的最终布局可能如下所示:

Container {
    id: toppbar
    docklayout
    minWidth: 600
    ImageButton {
      id: back
      horizontalAlignment left
    }
    Label {
      id: heading
      horizontalAlignment center
    }
    Container {
      horizontalAlignment right
      stacklayout leftToRight
      addButton
      activity indicator
    }
}

关于c++ - Blackberry 10 Cascades 中的布局有问题,qml(C++ 和 QT),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17497129/

相关文章:

C++ DWORD* 到 BYTE*

windows - 如何在 QT4 for Windows 中创建通用文件选择对话框

c++ - 无法从客户端向服务器发送消息

qt - 拉伸(stretch)元素以包含所有子元素

qt - QML 字体渲染不正确 - 缺少细节

c++ - 安全赋值和复制交换习语

c++ - 使用CMake和Make编译时OpenCV库错误: cannot find -lopencv_bgsegm

c++ - 它叫什么以及如何实现这种行为?

c++ - Qt 如何添加到 Windows 标题栏?

qt - RangeSlider onFirstChange 不存在的属性