gpt4 book ai didi

python - 从 C++ 到 Python 的 pyqt 翻译

转载 作者:行者123 更新时间:2023-11-30 03:24:28 24 4
gpt4 key购买 nike

在阅读 Qt 文档或在 C++ 中的 Stackoverflow 上给出的答案时,我总是在努力获得 Python 等价物,例如这个:

       QList<QStandardItem*> NewRow;
QString age = pyt.value(0).toString();
QStandardItem *newColumn = new QStandardItem(age);
NewRow.append(newColumn);
QString height = pyt.value(1).toString();
newColumn = new QStandardItem(height);

我的翻译是:

QStandardItem(NewRow)
age = pyt.value(0).toString()
#can't understand this line
NewRow.append(NewColumn)
height = pyt.value(1).toString()
newColumn = QStandardItem(height)

更广泛地说,是否有文档可以解释这两种语言之间的各种等价物?

最佳答案

我不知道有这样的文档,但我认为您要了解的主要内容是 C++ 是静态类型的,因此变量必须在使用前声明,并且遵循以下形式:

类型 变量名;

如果您看到 *&在类型中,它分别是一个指针或引用,因此为此忽略它。这些表格:

Type variable("argument");
Type variable = Type("argument");
Type* variable = new Type("argument");

声明和实例化变量。通过调用构造函数来翻译它们:

variable = Type("argument")

以后使用时不会先有类型,但会按相同的方式翻译它们。在你的例子中 newColumn在声明处创建一个对象(给定类型),在声明结束处创建另一个对象(未给定类型)。

如果你看到这个:

variable.foo;   // non-pointer
variable->foo; // pointer

在 Python 中只需使用点形式:

variable.foo

C++ 在指针和值之间存在差异,因此您通常可以忽略 *&在变量的使用中,例如function(*variable)function(&variable)在 C++ 中可能只是 function(variable)在 Python 中。

此示例中的最后一个问题是当您有 <> 时在类型中。这些是 C++ 模板,在 Python 中没有直接的等价物。相反,它们要么为整个类型提供一个固定名称,要么让您使用替代的 Python 类型。在此示例中,他们似乎接受 Python list对象而不是为 QList<QStandardItem*> 指定一个特殊名称.不要被 NewRow 的非常规命名所迷惑在您的示例中,这是变量名而不是类型。

不幸的是,QT 在 native 代码中使用了很多预处理器宏,按照惯例用全大写字母编写,例如 Q_OBJECT , SIGNAL , SLOT等。翻译这些没有一般规则,但许多可以忽略。

关于python - 从 C++ 到 Python 的 pyqt 翻译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49698060/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com