簡體   English   中英

在布局內移動小部件 C++ QT

[英]Moving a widget inside a layout C++ QT

我在另一個小部件中移動小部件時遇到問題:

這可能很簡單,但我無法理解:

  • 我的主要小部件在QHBoxlayout

  • 我的子小部件位於主小部件的布局內(圖片中以黃色突出顯示的不倒翁)我需要重新定位

  • 我需要移動子小部件quickWidgettum ,它只是父小部件中的不倒翁。

  • 父小部件mstrWnd是屏幕上的所有其他內容。

這里的 C++ 代碼:

mstrWnd = new QWidget;                                                      
        mstrWnd->setObjectName(STR_MASTER_WINDOW_NAME);                                 
mstrWnd->setWindowTitle(getSettingI(MSTR_APP_TITLE));                       
        mstrWnd->setGeometry(getSettingI(MSTR_APP_X).toInt(),                       
            getSettingI(MSTR_APP_Y).toInt(),                                        
            getSettingI(MSTR_APP_WIDTH).toInt(),                                    
            getSettingI(MSTR_APP_HEIGHT).toInt());                                  
        mstrWnd->setWindowFlags(Qt::FramelessWindowHint | Qt::Window);
        mstrWnd->setWindowState(Qt::WindowFullScreen);

        QHBoxLayout* laos = new QHBoxLayout();
        mstrWnd->setLayout(laos);

        QQuickView* quickView = new QQuickView(QUrl::fromLocalFile(QDir::currentPath() + "\\Resources\\videos\\aos.qml"));
quickView->setResizeMode(QQuickView::SizeRootObjectToView);
quickWidgettum = new QWidget;
        quickWidgettum = QWidget::createWindowContainer(quickView);

        laos->addWidget(quickWidgettum);

這里是 QML 部分:

import QtQuick 2.12
import QtQuick.Window 2.2
import QtQuick.Controls 2.12
Rectangle {
    width: frame.implicitWidth + 10
    height: frame.implicitHeight + 10

    function formatText(count, modelData) {
        var data = count === 12 ? modelData + 1 : modelData;
        return data.toString().length < 2 ? "0" + data : data;
    }

    FontMetrics {
        id: fontMetrics
    }

    Component {
        id: delegateComponent

        Label {
            text: formatText(Tumbler.tumbler.count, modelData)
            opacity: 1.0 - Math.abs(Tumbler.displacement) / (Tumbler.tumbler.visibleItemCount / 2)
            horizontalAlignment: Text.AlignHCenter
            verticalAlignment: Text.AlignVCenter
            font.pixelSize: fontMetrics.font.pixelSize * 1.25
        }
    }

    Frame {
        id: frame
        padding: 0
        anchors.centerIn: parent

        Row {
            id: row

            Tumbler {
                id: hoursTumbler
                model: 12
                delegate: delegateComponent
            }

            Tumbler {
                id: minutesTumbler
                model: 60
                delegate: delegateComponent
            }

            Tumbler {
                id: amPmTumbler
                model: ["AM", "PM"]
                delegate: delegateComponent
            }
        }
    }
}

這一行影響了小部件 anchors.centerIn: parent 的位置

從 QML 文件中刪除它修復了我的問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM