小编Ale*_*lev的帖子

Qt Quick Controls 2和TableView

在Quick Controls 2.0应用程序中使用TableView是否可以?这将需要两个导入:

import QtQuick.Controls 1.4
import QtQuick.Controls 2.0
Run Code Online (Sandbox Code Playgroud)

我会得到任何副作用吗?

另一个相关的问题:似乎TableView属于Quick Controls 1.0集.是吗?是否意味着如果可以使用TableView,那么可以使用Quick Controls 2.0应用程序中的所有Quick Controls 1.0控件吗?

qt qml qtquickcontrols qtquickcontrols2

11
推荐指数
2
解决办法
9408
查看次数

std :: unique_ptr和QObject :: deleteLater

我希望我的std :: unique_ptr调用QObject :: deleteLater来破坏对象.

我无法弄清楚该怎么做.

我没有尝试编译.

例如

std::unique_ptr<SomeQObject, decltype(&QObject::deleteLater)> var(
                pointer, &QObject::deleteLater);
Run Code Online (Sandbox Code Playgroud)

请帮忙...

添加#1.

好的,我发现这有效:

std::unique_ptr<QObject, decltype(std::mem_fun(&QObject::deleteLater))> var(
            pointer,
            std::mem_fun(&QObject::deleteLater));
Run Code Online (Sandbox Code Playgroud)

而不是这一个:

std::unique_ptr<QObject, decltype(&QObject::deleteLater)> var(
            pointer,
            QObject::deleteLater);
Run Code Online (Sandbox Code Playgroud)

但是使用它对我来说太难看了.有好办法吗?

qt c++11

7
推荐指数
1
解决办法
1141
查看次数

Sort file names func

I'm looking for a function to sort file names by name including numbers. It must do a special processing for numbers in names (as standard file managers of Windows/MAC OSes does).

E.g. usual sort function by just name sorts in this order:

name1
name11
name2
Run Code Online (Sandbox Code Playgroud)

I need my function to sort in the following order:

name1
name2
name11
Run Code Online (Sandbox Code Playgroud)

Is there a some standard or well known/working function?

The way I will use it:

std::sort(names.begin(), names.end(), sortfn);
Run Code Online (Sandbox Code Playgroud)

I can write …

c++

5
推荐指数
0
解决办法
78
查看次数

在没有剩余空间的驱动器上出现奇怪的写入文件问题

我们发现(不同的设备、不同的 Android 版本)当我们在没有剩余空间的 SD 卡上写入时,Android 不会返回错误!

即我能够成功创建一个新文件,并且文件写入函数也返回正常状态,但它实际上没有写入任何内容。该文件在磁盘上的实际大小仍为 0 字节。

我们正在使用本机 C++ API。

我尝试在我的 Android 11 手机上的新项目上重现此问题,是的 - 问题仍然存在。

我执行了以下步骤:

  1. 使用 Android Studio 创建一个新的 Native C++ 项目。
  2. 在其 C++ 代码中添加测试函数并调用它。
  3. 使用 Android Studio 启动项目 - 是的,我们能够看到相同的行为。

我使用的测试代码:

#include <android/log.h>

bool test()
{
    std::srand(std::time(0));

    auto path = "/storage/150E-2D07/Download/test_1";

    FILE *f2 = nullptr;
    bool ok = true;

    std::int64_t bytesWritten = 0;

#define checkok if (!ok) goto _error

    ok = nullptr != (f2 = fopen(path, "wb"));
    checkok;
    ok = ferror(f2) == 0; …
Run Code Online (Sandbox Code Playgroud)

c++ android

5
推荐指数
1
解决办法
404
查看次数

QML 获取默认字体高度值(以像素为单位)

有办法获得吗?

为什么我需要它。这里我的 UI 看起来很糟糕: Quick Controls 2 看起来很糟糕

以下是调整复选框大小的方法:QML: Resize CheckBox

我希望indicator.height值等于字体的高度。

fonts qt qml qt5 qtquickcontrols2

4
推荐指数
1
解决办法
1308
查看次数

VC2013:绑定不编译的功能

这是一个简短的样本:

class A {};

class S {};

class B
{
public:
    typedef std::function <bool (A& retVal)> property_getter_t;
    typedef std::function<bool (B* /*this*/, const std::shared_ptr<S>&, A& retVal)> SettingsPropGetter;

    void DefineSettingsProperty(const std::wstring& name, const SettingsPropGetter& getter)
    {
        auto fn_g = std::bind(getter, this, std::placeholders::_1, std::placeholders::_2);
        auto fn_gg = std::bind(&B::GetterHandler, this, fn_g, std::placeholders::_1);

        property_getter_t x = fn_gg;  // PROBLEM IS HERE
    }

    bool GetterHandler(const std::function<bool (const std::shared_ptr<S>&, A&)>& getter, A& a)
    {
        std::shared_ptr <S> s;
        return getter (s, a);
    }
};
Run Code Online (Sandbox Code Playgroud)

VC2010下的代码编译得很好.在VC2013下,我不断收到大量错误.

怎么了?这可以以某种方式修复吗?

以下是错误:

1>c:\program …
Run Code Online (Sandbox Code Playgroud)

c++ visual-c++ c++11 visual-studio-2013

3
推荐指数
1
解决办法
1888
查看次数

QML:调整复选框的大小

我有我自己的委托的 ListView。

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

ItemDelegate
{
    height: 40

    Row
    {
        spacing: 10
        anchors.verticalCenter: parent.verticalCenter

        CheckBox
        {

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是复选框不会调整大小,尽管 ItemDelegate 的高度。

我得到这个高度 = 40:

在此处输入图片说明

我得到这个高度 = 10:

在此处输入图片说明

我试过使用 CheckBox 的宽度和高度值 - 没有帮助。

有没有可能让它更小,而不需要定制它?

qt qml qtquickcontrols2

3
推荐指数
1
解决办法
3993
查看次数

QML:ListView委托:项目与MouseArea

我有以下代码:

ListView {
    delegate: MyDelegate {
        MouseArea {
            anchors.fill: parent
            /*some other stuff*/
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

问题在于它MyDelegate包含复选框和MouseArea从中“窃取”鼠标事件。它们根本不会对鼠标事件做出反应,即无法按预期工作。

我知道propagateComposedEvents的财产MouseArea......但我必须实现所有的鼠标事件(clickedpressedreleased,...),并检查鼠标光标是否在复选框或不设置mouse.accepted相应属性。

这就是我目前对所有这些的理解。有没有更简单的方法,即能够处理未明确处理鼠标事件的区域的所有鼠标事件?例如静态文本,进度条等。

qml qtquick2 qtquickcontrols2

2
推荐指数
1
解决办法
581
查看次数