QML内怎么根据字符串长度设置对应width的值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QML内怎么根据字符串长度设置对应width的值相关的知识,希望对你有一定的参考价值。

Qt QML自己在调试时按字符串数乘以字符的像素得出width,可是这样区分不了中文字与字母,求大神告知有什么算法;

参考技术A 具体操作记不住了。告诉你个思路吧。
从画面控件(or窗体)上获得graphcs,然后使用控件(or画面)的字体,进行字符串描画,描画的时候只求长度不画图,最后释放操作中使用的临时资源。追问

你这是复制的吧

QML 窗口最小宽度

【中文标题】QML 窗口最小宽度【英文标题】:QML Window min-width 【发布时间】:2012-06-01 06:39:09 【问题描述】:

我正在使用 QML 和下面的代码创建一个窗口。如何设置窗口的最小宽度,这样我就不能调整小于我定义的值?

Rectangle 
    color: red;
    width: 300
    height: 100


int main(int argc, char *argv[])

    QApplication app(argc, argv);
    QDeclarativeView view;

    view.setSource(QUrl::fromLocalFile("QML/main.qml"));
    view.setResizeMode(QDeclarativeView::SizeRootObjectToView);
    view.show();

    return app.exec();

【问题讨论】:

【参考方案1】:

我不知道您使用的是哪个版本的 QML,但如果您可以使用 QtQuick 2,那么您可以将 ApplicationWindow 设置为 QML 中的***项目,如下所示:

import QtQuick 2.0

ApplicationWindow 
    id: appWnd
    minimumWidth: 300
    minimumHeight: 300

您还可以查看每个特定 QML 类型的 implicitWidthimplicitHeight 属性,并将 appWnd minimumWidth/Height 设置为包含布局的implicitWidth/Height。例如:

import QtQuick 2.0
import QtQuick.Layouts 1.0
import QtQuick.Controls 1.0

ApplicationWindow

    minimumWidth: gridLayout.implicitWidth
    minimumHeight: gridLayout.implicitHeight
    height: 500
    width: 500

    color: "gold"

    GridLayout 
        id: gridLayout
        anchors.centerIn: parent
        columns: 2

        Button text: "Push me" 
        Button text: "Push me" 
        Button text: "Push me" 
        Button text: "Push me" 
        Button text: "Push me" 
        Button text: "Push me" 
    


这不会让应用程序窗口缩放小于它包含的控件(因为隐式布局的宽度和高度等于所包含项目的隐式宽度和高度的总和)。

您还可以使用gridLayout.Layout.minimumWidth 绑定到布局的绝对最小宽度,如in the docs 所述。

【讨论】:

在撰写本文时还没有 ApplicationWindow 组件,但现在您的回复是正确的 @Stefano,对,我没看问的年份,只看月份:(【参考方案2】:
view.setMinimumSize(QSize(min-width,min-height));

【讨论】:

谢谢它的工作。只是一个问题:没有一种方法可以在 QML 文件中设置它吗?我认为那里会更合适,因为它是与图形相关的东西 我没用过qml。但是肯定会有属性 minimumsize 可以在 qml 文件中设置。

以上是关于QML内怎么根据字符串长度设置对应width的值的主要内容,如果未能解决你的问题,请参考以下文章

QML:根据其他项目的左/右锚设置宽度

select 设置固定长度

QML 窗口最小宽度

phpexcel 怎么根据字符串长度设置单元格的宽度

RedisRedis 列表 List 操作 ( 查询操作 | 根据下标获取元素 | 获取列表长度 | 增操作 | 插入值 | 删操作 | 移除值 | 修改操作 | 设置列表指定索引的值 )

C# XML 如何直接根据属性值 读取 对应的值 怎么写???