请告诉我如何在没有第三方库或 jQuery 的情况下实现这样的动画。从以下部分中删除了 Gif :
参考“使用 PixiJS 创建”部分
在 C++ 中,我们可以使用WinAPI 的Beep播放简单的单声道声音。JavaScript 长期以来一直在为桌面和移动浏览器实现动态声音生成功能(AudioContext)。但是,我没有找到单音信号的简单示例。将实施告诉没有受过音乐教育的人......
关于 Qt 5.13发布的第一个新闻是发布了 Qt for WebAssembly 的稳定版本 - 支持在现代浏览器中运行 Qt 应用程序。
Qt for WebAssembly 可让您为 Web 浏览器构建 Qt 应用程序,现在已得到完全支持。
但是,我在 MaintenanceTool 中没有看到我需要的套件。你能告诉我在哪里可以获得构建工具以及支持哪个编译器吗?
似乎对 WebAssembly 目标平台的支持被带到了 CLang,但我怀疑到那时 Qt Group 会设法为许多 Emscripten 工具制作一个工具包。
任务是实现我们自己的 JSX 工厂。我们从 React 文档中知道 JSX 被转译为一个函数调用React.createElement(type,props,child)
,其中 child 表示为 rest 参数(传递一个以逗号分隔的子数组)。但是当前树和新树如何比较呢?毕竟,这些是完全独立的对象。
import React, { Component } from 'react';
class App extends Component {
render() {
return (
<div>
<p>It's</p>
<p>OK</p>
</div>
);
}
}
export default App;
另外,如果没有枚举中的关键字段,则无法部分呈现的标准是什么?我们可以连续放置两个 p 块,不会发生任何不好的事情......
编写了一个模板类,例如,从内联模板的类型推断 sizeof。
BaseInformer.h
template<typename ValueType>
class BaseInformer {
private:
int size;
public:
BaseInformer();
virtual ~BaseInformer(){}
public:
virtual void printInfo();
void printValue(ValueType value);
public:
std::string getSize() const;
virtual std::string getName() const = 0;
};
extern template class BaseInformer<int>;
extern template class BaseInformer<char>;
BaseInformer.cpp
template class BaseInformer<int>;
template class BaseInformer<char>;
template<typename ReturnValue>
BaseInformer<ReturnValue>::BaseInformer() {
size=sizeof(ReturnValue);
}
template<typename ValueType>
void BaseInformer<ValueType>::printValue(ValueType value) {
std::cout << getName() << " " << value << "\n";
}
template<typename ValueType>
void BaseInformer<ValueType>::printInfo() {
std::cout << getName() << " " << getSize() << "\n";
}
template<typename ValueType>
std::string BaseInformer<ValueType>::getSize() const {
std::stringstream ss;
ss << size;
return ss.str();
}
类 IntInformer 和 CharInformer 继承自它并且具有几乎相同的内容:
IntInformer.h
class IntInformer : public BaseInformer<int> {
public:
IntInformer(){}
virtual ~IntInformer() override {}
public:
virtual std::string getName() const override;
};
IntInformer.cpp
std::string IntInformer::getName() const {
return "Int";
}
因此,下面是主要功能的部分
主文件
int main() {
...
std::cout << "template printInfo()\n";
IntInformer().printInfo();
CharInformer().printInfo();
...
}
上面的代码使用MinGW64编译运行成功,使用MSVC2019x64编译器编译成功。但是,当尝试在 macOS 上使用 CLang 进行构建时,会输出以下日志:
Undefined symbols for architecture x86_64:
"BaseInformer<char>::printValue(char)", referenced from:
_main in main.o
"BaseInformer<char>::printInfo()", referenced from:
vtable for BaseInformer<char> in baseinformer.o
vtable for CharInformer in charinformer.o
_main in main.o
"BaseInformer<char>::BaseInformer()", referenced from:
CharInformer::CharInformer() in main.o
"BaseInformer<int>::printValue(int)", referenced from:
_main in main.o
"BaseInformer<int>::printInfo()", referenced from:
vtable for BaseInformer<int> in baseinformer.o
vtable for IntInformer in intinformer.o
_main in main.o
"BaseInformer<int>::BaseInformer()", referenced from:
IntInformer::IntInformer() in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [cpp-template-header] Error 1
20:02:57: Процесс «/usr/bin/make» завершился с кодом 2.
请告诉我,如果您想在不依赖于各种支持的编译器的情况下进行构建(在 CLang 下运行此业务),使用模板语法的正确方法是什么?如果可能的话,我想保留头文件和源代码文件的划分。为方便起见,我在此处发布了该项目。
当您尝试使用 QJSEngine 将对象从 C++ 传递到 JavaScript 时,所有字段都神秘地消失了,其值由函数存储。为什么会这样?
qjsengine-bug
QT += core qml quick quickcontrols2
TARGET = qjsengine-bug
TEMPLATE = app
DEFINES += QT_DEPRECATED_WARNINGS
CONFIG += c++11 console
SOURCES += main.cpp
主文件
#include <QCoreApplication>
#include <QJSValueIterator>
#include <QJSEngine>
#include <QJSValue>
#include <QtGlobal>
#include <iostream>
void myMessageOutput(
QtMsgType t,
const QMessageLogContext &c,
const QString &msg
) {
Q_UNUSED(t);
Q_UNUSED(c);
std::cout << msg.toStdString() << "\n";
}
int main(int argc, char *argv[]) {
qInstallMessageHandler(myMessageOutput);
QCoreApplication app(argc, argv);
QJSEngine engine;
engine.installExtensions(QJSEngine::ConsoleExtension);
QJSValue constructor = engine.evaluate(
"(function Component(props){console.log(JSON.stringify(props))})"
);
QJSValue callBack = engine.evaluate("(function(text){console.log(text)})");
callBack.call({"There is no error. Valid JavaScript code..."});
callBack.call({"Let's create an object, add a couple of props to it"});
QJSValue object = engine.newObject();
object.setProperty("First", 1);
object.setProperty("Second", callBack);
object.setProperty("Third", "#2");
QJSValueIterator iter(object);
while (iter.hasNext()) {
iter.next();
callBack.call({
QString("name: %1, value: %2")
.arg(iter.name())
.arg(iter.value().toString())
});
}
callBack.call({"Correct. Three fields"});
callBack.call({"Let's try to pass an object to the constructor parameters"});
constructor.callAsConstructor({object});
callBack.call({"Where did the second property go?"});
return app.exec();
}
我正在使用 Qt 库在 C++ 中编写应用程序。选择 Qt Quick 来构建用户界面是因为它对触摸屏的良好支持。在编写程序时,出现了以下困难:
您能否告诉我是否有任何布局允许您按以下方式排列矩形,以便在调整窗口大小时,它们会自动调整为新的宽度/高度比?下面的布局在期望的行为上是相似的,但我根本不想将 WebView 嵌入到最终产品中。
<style>
.container {
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: space-around;
align-items: center;
align-content: space-around;
background-color: aqua;
height: 500px;
}
.box {
background-color: green;
padding: 50px;
}
</style>
<div class="container">
<div class="box">
box1
</div>
<div class="box">
box2
</div>
<div class="box">
box3
</div>
<div class="box">
box3
</div>
<div class="box">
box3
</div>
<div class="box">
box3
</div>
<div class="box">
box3
</div>
</div>
假设我需要在某个时间间隔从文件中读取数据,而不使用带有信号的 QFileSystemWatcher来监视大小等。在互联网上,我遇到了类似的期望
QEventLoop eventLoop;
QObject::connect(m_webView, SIGNAL(loadFinished(bool)), &eventLoop, SLOT(quit()));
QTimer timer;
QObject::connect(&timer, SIGNAL(timeout()), &eventLoop, SLOT(quit()));
timer.setSingleShot(true);
timer.start(defaultTimeout);
eventLoop.exec();
请告诉我这样的解决方案如何合理地消耗操作系统的资源?在计时器停止之前,循环对象到底会做什么?Sleep(1000)
如果在新线程上执行,从QRunnable继承,它的效率不等同于bare吗?使用 进行间隔检查不是更好QTimer
吗?
我需要编写一个处理 CSV 文档的 Web 应用程序,每个文档大约有 2000 万行。它本身仍然什么都不是,但标准的 FileReader 对象只有一个读取整个文件的方法,我需要显示进程栏。另外,我担心程序可能会因为这么长的一行而挂起。
尽管 ES6 规范是在 2015 年发布的,但即使在 2019 年 NodeJS 仍然没有实现这个标准。该支持仍处于试验阶段,从描述来看,仅适用于 V8 级别:由节点开发人员自己编写的模块系统似乎生活在另一个世界。
结合使用 CommonJS 模块的大量预制例程,问题出现了:究竟是什么促使Ecma International采用了一个与将 JS 库发布为 NPM 包、NodeJS 模块的运动背道而驰的标准?
使用Python 的 OpenCV文档中的代码将 RGB 调色板的绿色转换为 HSV
import cv2 as cv
import numpy as np
green = np.uint8([[[0,255,0 ]]])
hsv_green = cv.cvtColor(green,cv.COLOR_BGR2HSV)
print(hsv_green)
我得到了输出,就像在文档中一样。但是当您尝试在不使用 OpenCV 工具的情况下将此颜色转换回 RGB 表时,它会变成黄色。
有没有人遇到过同样的问题?是否有任何第三方实用程序可让您选择正确的范围以在 OpenCV 中按颜色突出显示对象?
我需要在 Windows 10 计算机上将桌面内容作为网络摄像头视频流式传输。是否有允许我这样做的程序,最好是开源程序?
GitHub 上有一个存储库,实现了 WebSocket 协议的解码帧。问题是如果同时发送多条消息,浏览器会粘住帧,代码就不能正常工作。
private String DecodeMessageFromClient(Byte[] bytes)
{
try
{
String incomingData = String.Empty;
Byte secondByte = bytes[1];
Int32 dataLength = secondByte & 127;
Int32 indexFirstMask = 2;
if (dataLength == 126) indexFirstMask = 4;
else if (dataLength == 127) indexFirstMask = 10;
IEnumerable<Byte> keys = bytes.Skip(indexFirstMask).Take(4);
Int32 indexFirstDataByte = indexFirstMask + 4;
Byte[] decoded = new Byte[bytes.Length - indexFirstDataByte];
for (Int32 i = indexFirstDataByte, j = 0; i < bytes.Length; i++, j++)
{
decoded[j] = (Byte)(bytes[i] ^ keys.ElementAt(j % 4));
}
return incomingData = Encoding.UTF8.GetString(decoded, 0, decoded.Length);
}
catch (Exception ex)
{
Debug.WriteLine("Could not decode due to :" + ex.Message);
}
return null;
}
根据变量的名称,发生这种情况是因为代码跳过了标头,并将其余信息视为帧的内容。但由于消息中有两帧,因此不会跳过第二个标头。
for (Int32 i = indexFirstDataByte, j = 0; i < bytes.Length; i++, j++)
按照在 Razor Pages 中传递参数的教程,我正在尝试在 POST 请求中实现传递参数。我使用必要的参数在模型中创建 OnPost 方法
public void OnPost(string name, int age)
{
Message = $"Имя: {name} Возраст: {age}";
}
当打开带有参数传递的页面时,站点会发出 400,无论是否启用了调试,如果发生错误,它应该抛出异常消息。在调试输出中,会出现一条关于传入 POST 请求的消息。另外还有一个请求失败的标志:"success":false
Application Insights 遥测(未配置):{"name":"Microsoft.ApplicationInsights.Dev.Request","time":"2018-06-22T19:51:42.8782150Z","tags":{"ai.internal.sdkVersion ":"aspnet5c:2.1.1","ai.operation.id":"2d5e9204-426fd30dac34dcf3","ai.location.ip":"::1","ai.operation.name":"POST /auth ","ai.cloud.roleInstance":"DESKTOP-Q8TI744","ai.application.ver":"1.0.0.0","ai.internal.nodeName":"DESKTOP-Q8TI744"},"data":{ "baseType":"RequestData","baseData":{"ver":2,"id":"|2d5e9204-426fd30dac34dcf3.","name":"POST /auth","duration":"00:00: 00.0230074","success":false,"responseCode":"400","url":" http://localhost/auth ","properties":{"AspNetCoreEnvironment":"Development","httpMethod":"POST"," DeveloperMode":"true"}}}}
如果您创建 OnGet 而不是 OnPost 方法,那么一切都会正常...
如何处理 POST 请求?
页面代码可以在这里查看
我有一个使用实体框架代码优先的 C# 项目
public class DatabaseContext : DbContext
{
public DatabaseContext() : base("name=DatabaseContext")
{
Database.SetInitializer<DatabaseContext>(new DropCreateDatabaseIfModelChanges<DatabaseContext>());
Database.CreateIfNotExists();
}
public void Init(){}
//Множество объектов
public DbSet<Project> Projects { get; set; }
}
如您所见,EntityFramework 存储了一组特定的 Projects 对象。Project 对象有一个 Items 字段,它是一个集合
public class Project
{
public Project(){}
[Key]
public int Id{ get;set;}
//Коллекция
ObservableCollection<Item> items = new ObservableCollection<Item>();
public ObservableCollection<Item> Items
{
get
{
return items;
}
set
{
items = value;
}
}
}
Entity Framework 创建的数据库图如下所示:
通过 SQL,从 Item 表中获取一行,知道 Id,很简单。
Select * FROM dbo.Items where Id=1
问题:如何在不将项目中的所有 Items 集合加载到程序中的情况下使用 Entity Framework 工具执行相同的操作?
在没有创建数据库的情况下尝试连接 SQL EXPRESS 时,Entity Framework Core 抛出一个模棱两可的异常:密码不正确或数据库不存在
无法打开登录请求的数据库“...”。登录失败。登录用户“...”时出错
同时,如果创建了数据库,它会开始对对象的名字起誓,但是不管你怎么改,什么都不会发生…… ”更新条目时出错。见内部异常有关详细信息。“SqlException:无效的对象名称“...”。
按照微软网站上的指南,这里是链接https://docs.microsoft.com/en-us/ef/core/
也许我错过了什么?