小编Jiu*_*Jiu的帖子

如何将枚举转换为QString?

我试图使用Qt反射将枚举转换为QString.

这是代码的一部分:

class ModelApple
{
    Q_GADGET
    Q_ENUMS(AppleType)
public:
    enum AppleType {
      Big,
      Small
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我试图做的:

convertEnumToQString(ModelApple::Big)
Run Code Online (Sandbox Code Playgroud)

返回 "Big"

这可能吗?如果您有任何想法convertEnumToQString,请分享

c++ enums qt

29
推荐指数
4
解决办法
3万
查看次数

fontawesome错误"无法找到一个或多个图标"

我跟着https://fontawesome.com/how-to-use/on-the-web/using-with/vuejs.

但是在使用它时:

import { library } from '@fortawesome/fontawesome-svg-core'
import { faBars } from '@fortawesome/free-solid-svg-icons'
import { faTwitter, faFacebook, faStackOverflow, faGithub } from '@fortawesome/free-brands-svg-icons'
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'

...

library.add(faBars, faTwitter, faFacebook, faStackOverflow, faGithub )
Vue.component('font-awesome-icon', FontAwesomeIcon)

...

<font-awesome-icon icon="twitter" class="icon alt"/>
Run Code Online (Sandbox Code Playgroud)

拿到:

找不到一个或多个图标{前缀:"fas",iconName:"twitter"}

font-awesome vue.js vuepress

9
推荐指数
1
解决办法
6020
查看次数

QML中的'this'关键字是什么?

Item {
    id: test
    Component.onCompleted: console.log("this is ", this, test)
}
Run Code Online (Sandbox Code Playgroud)

上面的代码输出显示了与Item相同的指针,那么thisQML中的关键字是什么?这是最近的QML组件的指针,可以使用id吗?

qt qml qt5

6
推荐指数
1
解决办法
1090
查看次数

如何比较两个列表并找出“添加”“删除”“未更改”部分

我要这个:

def compare_list(old, new):
    new_set = set(new)
    old_set = set(old)
    return new_set - old_set, old_set - new_set, new_set & old_set

old = [1, 2, 3]
new = [5, 4, 2, 3]

added, deleted, unchanged = compare_list(old, new)

print("added: ", added)
print("deleted: ", deleted)
print("unchanged: ", unchanged)
Run Code Online (Sandbox Code Playgroud)
added:  {4, 5}
deleted:  {1}
unchanged:  {2, 3}
Run Code Online (Sandbox Code Playgroud)

但这对我来说似乎效率很低。所以我想知道还有什么更有效的解决方案吗?或内置功能?

python algorithm list

6
推荐指数
1
解决办法
1598
查看次数

该函数何时会加载到内存中?

例如,我有一个功能:

void getA(char* outA) {
  char a[10000];
  // copy a to outA
}
Run Code Online (Sandbox Code Playgroud)

然后,我编译getA为共享库。并链接可执行文件。

我了解变量a在getA被调用时会保留在堆栈内存中。

该函数getA何时会加载到内存中?

  • 可执行文件何时启动?
  • 什么时候getA被调用?

功能的上下文将分配到哪里?

如果是静态链接,会有所不同吗?

c memory

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

如何将 QVariant 转换为 QJsonValue?

如何转换QVariant为QJsonValue?我知道QVariant提供了该toJsonValue功能,但它没有按预期执行。

例如:

qDebug()<<QVariant(1.0).toJsonValue();
qDebug()<<QVariant("test").toJsonValue();
Run Code Online (Sandbox Code Playgroud)

两者都返回:

QJsonValue(null)
QJsonValue(null)
Run Code Online (Sandbox Code Playgroud)

期望输出:

QJsonValue(double, 1)
QJsonValue(string, "test")
Run Code Online (Sandbox Code Playgroud)

c++ qt qjson

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

为什么 VC++/MFC 没有 main 函数?

我开始学习 VC++/MFC。然后我创建了一个“HelloWord”程序,我App.h/.cpp AppDlg.h/.cpp通过创建一个基本的文件得到了两个基本文件Dialog项目。

第一个问题:我找不到程序入口。main.cpp项目中没有。

然后我试图找到之间的关系App,并AppDlg会见了第二个问题:基础上的文件名,貌似AppDlg应该是一个定制的MFCDialog组件,并App设是主要事件线程。但我在两个.cpp文件中都低于。它包括彼此。我认为AppDlg应该是App.

#include "App.h"
#include "AppDlg.h"
Run Code Online (Sandbox Code Playgroud)

这两个问题让我对项目的结构感到困惑。

为什么 MFC 代码看起来如此不同?这样做的目的是什么?

c++ mfc visual-c++

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

使用 Qt Quick 和 qml 创建类似 telegram 的响应式 ui?

我想创建一个像 Telegram 一样具有响应式设计的 qml UI。在电报中,当您有足够的空间时,聊天区域显示在右侧,如果没有足够的空间,聊天区域和其他详细信息将显示为堆栈视图。

我有一个列表视图和一个表单来将联系人添加到数据库中。我希望窗口足够大,列表视图显示在表单右侧

或者如果没有可用空间列表视图并且表单显示为堆栈视图

就像电报应用程序一样

这个怎么做?

这是我的 qml 文件:

ApplicationWindow {
    id: window
    visible: true
    width: 300
    height: 480

    ColumnLayout {
        id: rowLayout
        anchors.top: parent.top
        anchors.left: parent.left
        anchors.right: parent.right
        anchors.margins: 5
        spacing: 10

        Text { text: qsTr("FirstName") }
        TextField { id: firstnameField }
        Text { text: qsTr("LastName") }
        TextField { id: lastnameField }
        Text { text: qsTr("Mobile") }
        TextField { id: mobileField }

        Button {
            text: qsTr("Add Data")
            onClicked: {
                database.insertIntoTable(firstnameField.text, lastnameField.text, mobileField.text)
                myModel.updateModel()
            }
        }

        Button …
Run Code Online (Sandbox Code Playgroud)

qt fluid qml responsive

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

如何在QEMU(raspi2)上运行u-boot?

我正在尝试在 QEMU 上运行 u-boot。但是当启动 QEMU 时它什么也没给出,那么为什么这不起作用以及如何调试以找出原因?

这是我尝试过的:

  1. 在 Windows 上安装Ubuntu 18.04 WSL2。

  2. 为Raspi2编译u-boot

    sudo apt install make gcc bison flex
    sudo apt-get install gcc-arm-none-eabi binutils-arm-none-eabi
    export CROSS_COMPILE=arm-none-eabi-
    export ARCH=arm
    make rpi_2_defconfig all
    
    Run Code Online (Sandbox Code Playgroud)
  3. 启动QEMU

    qemu-system-arm -M raspi2 -nographic -kernel ./u-boot/u-boot.bin

    并且在Windows端也尝试了QEMU,结果是一样的。

    PS C:\WINDOWS\system32> qemu-system-arm.exe -M raspi2 --nographic -kernel E:\u-boot\u-boot.bin

然后 QEMU 没有给出输出,即使我尝试也ctrl+c无法停止该过程。 在此输入图像描述

qemu u-boot

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

如何将原始字节附加到 std::vector?

我想像这样附加原始字节vector。

vector.reserve(current_size + append_data_size);
memcpy(append_data, vector.data() + current_size, append_data_size);
vector.resize(current_size  + append_data_size) // Expect only set size to current_size + append_data_size.
Run Code Online (Sandbox Code Playgroud)

下面是不是更慢?因为我认为矢量首先初始化为默认值,然后设置浪费的数据。

vector.resize(current_size  + append_data_size);
memcpy(append_data, vector.data() + current_size, append_data_size);
Run Code Online (Sandbox Code Playgroud)

c++ performance vector

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

如果我想在不更新编译器的情况下使用新功能,我该怎么办?

例如。我只想使用std::byte,我不需要 17 中的其他新功能。但将来可能会使用。那我现在该怎么办?

1

#if __cplusplus  < 201703L
namespace std {
  enum class byte : unsigned char {};
}
#endif
Run Code Online (Sandbox Code Playgroud)

2

#if __cplusplus  < 201703L
namespace std {
  typedef byte uint8_t;
}
#endif
Run Code Online (Sandbox Code Playgroud)

或者不在std命名空间中添加这些,只需使用uint8_t.

或任何其他建议...

我知道 1 & 2 非常难看,但对我来说是最简单的。

c++

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

标签 统计

c++ ×5

qt ×4

qml ×2

algorithm ×1

c ×1

enums ×1

fluid ×1

font-awesome ×1

list ×1

memory ×1

mfc ×1

performance ×1

python ×1

qemu ×1

qjson ×1

qt5 ×1

responsive ×1

u-boot ×1

vector ×1

visual-c++ ×1

vue.js ×1

vuepress ×1