小编Mic*_*sen的帖子

用C++运行QtWebEngine

我是第一次尝试Qt并且想要创建一个加载网站的非常基本的应用程序.我想使用Qt WebEngine.

这是我的helloworld.pro:

TEMPLATE = app
TARGET = hello
DEPENDPATH += .
INCLUDEPATH += .

QT += webenginewidgets

SOURCES += hello.cpp
Run Code Online (Sandbox Code Playgroud)

这是我的hello.cpp

#include <QApplication>
#include <QtWebEngineWidgets/QtWebEngineWidgets>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QWebEngineView *view = new QWebEngineView(parent);
    view->load(QUrl("http://qt-project.org/"));
    view->show();

    return app.exec();
}
Run Code Online (Sandbox Code Playgroud)

在尝试编译时,我收到错误:

Project ERROR: Unknown module(s) in QT: QWebEngineView
Project ERROR: Unknown module(s) in QT: webenginewidgets
Run Code Online (Sandbox Code Playgroud)

我想我知道它找不到模块,但是查看qt文档似乎是包含它们的正确方法.

我在Qt 5.5.0上运行QtCreator 3.4.2.

c++ qt qt-creator qtwebengine

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

NodeJS和pg-promise,捕获PostgreSQL异常

我正在使用PostgreSQL后端运行NodeJS和pg-promise.我创建了自己的TRIGGER,在某些情况下引发异常.事情在这方面很好.

但是使用pg-promise我无法捕获错误的名称.

使用此代码:

...
.catch(function(err) {
    console.log(err);
});
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

[ { success: false,
result: 
 { [error: vote_limit_exceeded]
   name: 'error',
   length: 80,
   severity: 'ERROR',
   code: 'P0001',
   detail: undefined,
   hint: undefined,
   position: undefined,
   internalPosition: undefined,
   internalQuery: undefined,
   where: undefined,
   schema: undefined,
   table: undefined,
   column: undefined,
   dataType: undefined,
   constraint: undefined,
   file: 'pl_exec.c',
   line: '3068',
   routine: 'exec_stmt_raise' } } ]
Run Code Online (Sandbox Code Playgroud)

我可以在上下文中看到名称'vote_limit_exceeded',但是如何作为文本字符串返回?

我尝试过"接近":

console.log(err[0].result);
Run Code Online (Sandbox Code Playgroud)

但是我无法将'vote_limit_exceeded'隔离开来.

javascript postgresql node.js pg-promise

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

将对象数组转换为与nodejs/pg/unnest兼容的数组

关于在nodejs/pg中从多个参数更新多行,我需要运行以下命令:

update portfolios p
set votes = s.votes
from unnest(array[(5, 1), (15, 1), (25, 2)]) s (votes int, id int)
where p.id = s.id
Run Code Online (Sandbox Code Playgroud)

我的数组中的数字是$ 1,如下所示:

update portfolios p
set votes = s.votes
from unnest($1) s (votes int, id int)
where p.id = s.id
Run Code Online (Sandbox Code Playgroud)

但是,我的数组最初由对象组成,如:

[{votes: 5, id: 1}, {votes: 15, id: 1}, {votes: 25, id: 2}]
Run Code Online (Sandbox Code Playgroud)

我试图将其转换为:

my_array = my_array.map(function(e) { return tuple(e.votes, e.id); });
Run Code Online (Sandbox Code Playgroud)

但那失败了.

我需要使用与pg和Client.query一起使用的值来更正兼容的数组.

如何转换我的对象数组以尊重javascript和postgresql的最新情况?

javascript arrays postgresql node.js

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

导入错误:没有名为 scapy.all 的模块

我正在运行 macOS Sierra 和 Python 2.7。

在我的终端中,我安装了 scapy:

pip install scapy
Requirement already satisfied: scapy in /usr/local/lib/python2.7/site-packages
Run Code Online (Sandbox Code Playgroud)

但是运行这个:

from scapy.all import *

for pkt in sniff(iface='en0'):
    print pkt
Run Code Online (Sandbox Code Playgroud)

给我这个:

python test.py 
Traceback (most recent call last):
  File "test.py", line 1, in <module>
    from scapy.all import *
ImportError: No module named scapy.all
Run Code Online (Sandbox Code Playgroud)

我试过和谷歌周围,并安装pcapy和其他软件包 - 但没有运气。

python macos scapy

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

SyntaxError:位于JSON的意外的令牌\

我正在尝试在NodeJS/Javascript中解析String到JSON,这是我的字符串(我无法更改,来自外部数据库):

'{\\"value1\\":\\"XYZ\\",\\"value2\\":\\"ZYX\\"}'
Run Code Online (Sandbox Code Playgroud)

我打电话给:

JSON.parse(row.raw_data)
Run Code Online (Sandbox Code Playgroud)

但是得到了:

SyntaxError: Unexpected token \ in JSON at position
Run Code Online (Sandbox Code Playgroud)

我实际上认为双重转义是在字符串/ JSON中转义的正确方法.

javascript json node.js

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

事务后运行触发器,而不是每行 - PostgreSQL 9.4

我有这个触发器,以确保所有投票的总和不超过100:

CREATE FUNCTION limit_votes() RETURNS TRIGGER AS $limit_votes$
    DECLARE
        votes_total int;
    BEGIN
        votes_total := NEW.vote + (SELECT SUM(vote) FROM cars WHERE portfolio_id = NEW.portfolio_id AND car != NEW.car);
        IF votes_total > 100 THEN
            RAISE EXCEPTION 'votes_limit_exceeded';
        END IF;
        RETURN NEW;
    END;
$limit_votes$ LANGUAGE plpgsql;
CREATE TRIGGER limit_votes BEFORE INSERT OR UPDATE ON cars FOR EACH ROW EXECUTE PROCEDURE limit_votes();
Run Code Online (Sandbox Code Playgroud)

应该提到的是,"投票"可以更新,因此它不仅仅是INSERT.这就是我的问题发生的地方,因为一个用户可以更改汽车之间的投票,然后触发器被发出,因为单个行的更新可能超过100的限制,然后其他更新减少其他投票.

我希望它有意义.

我希望触发器在BEGIN ... COMMIT之后被调用,所以我可以在检查所有内容之前更新多行 - 但是如果用户尝试将投票更新到更多,则还会引发异常而不保存结果100.

postgresql

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

WebRTC,浏览器不要求使用相机和麦克风的许可 - 但在本地它确实如此

我正在测试https://codelabs.developers.google.com/codelabs/webrtc-web/#8并且在本地我的浏览器要求获得使用相机和麦克风的许可 - 一切正常。

当我将代码上传到真实域上的服务器时,我的浏览器不会请求权限,并且我从 getUserMedia() 收到错误,但权限被拒绝。

我怎样才能防止这种情况?

我正在 Google Chrome 中进行测试,但希望该修复程序能够在 Chrome、Firefox 和 Opera 上运行(因为它们支持 WebRTC)。

html javascript google-chrome webrtc

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

行总和的约束

我在 PostgreSQL 9.4 中有一张表:

user_votes (
  user_id int,
  portfolio_id int,
  car_id int
  vote int
)
Run Code Online (Sandbox Code Playgroud)

是否可以在表格上设置约束,以便用户最大可以在每个投资组合中投票 99 分?这意味着一个用户可以有多个行,由相同的 user_id 和portfolio_id 组成,但不同的car_id 和vote。票数总和不能超过 99,但可以放在不同的车之间。

这样做:

INSERT INTO user_vores (user_id, portfolio_id, car_id, vote) VALUES
    (1, 1, 1, 20),
    (1, 1, 7, 40),
    (1, 1, 9, 25)
Run Code Online (Sandbox Code Playgroud)

都将被允许,但是当尝试添加超过 99 票的内容时应该会失败,例如另一行:

    INSERT INTO user_vores (user_id, portfolio_id, car_id, vote) VALUES
    (1, 1, 21, 40)
Run Code Online (Sandbox Code Playgroud)

postgresql postgresql-9.4

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

在 pg-promise 中使用 .batch 和参数列表

我正在运行 nodejs 和 pg-promise,并且想使用批处理函数来创建一个带有 BEGIN 和 COMMIT 围绕多个 UPDATE 的事务。

这是我的代码:

db.tx(function (t) {
    return this.batch(function() {
        for (var i = 0; i < cars.length; i++) {
            return db.any('UPDATE ... ', [car_id, cars[i].votes]);
        }
    });
})
Run Code Online (Sandbox Code Playgroud)

然而,它似乎不起作用,因为什么也没有发生。难道不能为这样的输入创建我的批处理列表吗?

postgresql node.js pg-promise

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

使用AngularJS摇动动画

我仍在学习AngularJS,并且以前一直在使用jQuery等来归档相同的感觉。

我有一个登录功能,如果登录成功,则该用户将重定向用户,否则就象现在一样打印到控制台。如果密码不正确,我想“摇晃” form-html-DOM。

这是我在控制器中的代码:

    user.login(self.username, self.password).then(
        function(res) {
            $location.path('/dashboard');
        }, function(res) {
            console.log(res.data.error);
        }
    );
Run Code Online (Sandbox Code Playgroud)

使用jQuery,我会做类似的事情:

    user.login(self.username, self.password).then(
        function(res) {
            $location.path('/dashboard');
        }, function(res) {
            $("#my-login-form").shake();
        }
    );
Run Code Online (Sandbox Code Playgroud)

对于AngularJS,这当然不好。做类似事情的最简单,最好的方法是什么?我试图阅读ngAnimate文档,但需要更好的理解/类似的例子。

javascript jquery angularjs ng-animate

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

PostgreSQL:SELECT*来自表WHERE时间戳是在这个月内

出于某种原因,我有点迷失在如何存档:

SELECT * FROM table WHERE timestamp IS WITHIN THIS MONTH;
Run Code Online (Sandbox Code Playgroud)

我查看了https://www.postgresql.org/docs/9.4/static/functions-datetime.html,但只能向后选择X天.

我正在运行PostgreSQL 9.4

sql postgresql postgresql-9.4

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