我已经创建launch.json了与此完全相同的文件,用于在 VS Code 上调试我的电子应用程序。但是console.log()没有向调试控制台打印任何内容。
如果我添加 "console": "integratedTerminal"到launch.json内置终端上的日志显示。我希望日志显示在调试控制台上。我该如何解决?
我有一个字符串需要用正则表达式拆分以应用一些修改。
例如:
const str = "Hello+Beautiful#World";
const splited = str.split(/[\+#]/)
// ["Hello", "Beautiful", "World"]
Run Code Online (Sandbox Code Playgroud)
现在字符串已被+或分割#。现在说在对数组中的项目进行一些修改后,我必须使用用于拆分的相同分隔符加入数组,因此字符+和#必须与以前的位置相同。
例如:如果我应用了一些修改字符串并加入。那么应该是。
Hello001+Beutiful002#World003
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我有一个在 QML 中使用的QObject派生类Expense,如下所示。
// main.qml
Expense {
id: expenseManager
onExpenseCreated: {
// Do something
}
}
Run Code Online (Sandbox Code Playgroud)
费用类没有 UI 组件,它有一些用于 API 通信的基本信号和插槽。
// expense.h
#ifndef EXPENSE_H
#define EXPENSE_H
#include <QObject>
#include <QString>
#include "service.h"
class Expense : public QObject
{
Q_OBJECT
private:
Service service;
void networkError();
bool buttonLock = false;
public:
explicit Expense(QObject *parent = nullptr);
public slots:
void createInvoice(QString item, float amount);
signals:
void expenseCreated();
};
#endif // EXPENSE_H
Run Code Online (Sandbox Code Playgroud)
我曾用于在 QML 中qmlRegisterType()注册Expense类型。下面是我的样子 …
我创建了一个具有两个角色的非常小的 QAbstractListModel,display并且test
InvoiceTabModel::InvoiceTabModel(QObject *parent): QAbstractListModel(parent)
{
}
QVariant InvoiceTabModel::data(const QModelIndex &index, int role) const
{
Q_UNUSED(index)
if(role == 123)
return QVariant("testRole");
return QVariant("displayRole");
}
int InvoiceTabModel::rowCount(const QModelIndex &parent) const
{
Q_UNUSED(parent)
return 3;
}
QHash<int, QByteArray> InvoiceTabModel::roleNames() const
{
return { {Qt::DisplayRole, "display"}, {123, "test"} };
}
Run Code Online (Sandbox Code Playgroud)
我将此模型连接到中继器
Repeater{
id: invoiceTab
anchors.fill: parent
model: invoice.tabmodel
Button{
width: 100
height: parent.height
text: test
//text: display
}
}
Run Code Online (Sandbox Code Playgroud)
问题是当我使用displayrole 时,文本显示为2,但是当我test在 qml 中使用时,字符串显示正确
使用 …