小编KMK*_*KMK的帖子

业力:浏览器空闲

我是第一次尝试Karma,几个小时后我仍然无法让它工作.

当我通过karma start karma.conf.js在终端中输入来运行测试时,浏览器窗口将打开并显示以下内容(我也尝试过使用相同结果的Chrome):

在此输入图像描述

这是终端输出:

29 07 2015 16:27:12.835:INFO [karma]: Karma v0.13.3 server started at http://localhost:9876/
29 07 2015 16:27:12.852:INFO [launcher]: Starting browser Firefox
29 07 2015 16:27:15.866:INFO [Firefox 33.0.0 (Windows 7 0.0.0)]: Connected on socket HA1RSN-QsWuAO7NIAAAA with id 26755366
Run Code Online (Sandbox Code Playgroud)

我的karma.conf.js文件位于我的Node.js项目的根目录,如下所示:

module.exports = function(config) {
  config.set({
    basePath: '',
    frameworks: ['jasmine'],
    files: [
        'tests/unit/test.js'
    ],
    exclude: [],
    preprocessors: {},
    reporters: ['progress'],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: false,  
    browsers: ['Firefox'],
    singleRun: false
  })
}
Run Code Online (Sandbox Code Playgroud)

我的test.js文件看起来像这样(来自一本书的示例测试,我的实际测试将是Angular.js测试):

describe("First Test", function …
Run Code Online (Sandbox Code Playgroud)

karma-runner karma-jasmine

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

带有 CMake 的 Qt 应用程序中的静态链接库

我正在尝试使用 CMake 使用静态库构建 Qt5 应用程序,但我不知道如何静态链接文件。我已经坚持了几个小时并试图在谷歌上找到任何线索,但没有运气。

CMakeLists.txt:

cmake_minimum_required(VERSION 3.9 FATAL_ERROR)   

project (myDemo VERSION 0.1 LANGUAGES CXX)

### Didn't make any difference:
###set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
   
set (myDemo_VERSION_MAJOR 1)    
set (myDemo_VERSION_MINOR 0)

set(CMAKE_BINARY_DIR ${CMAKE_SOURCE_DIR}/bin)    
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR})    
set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR})
set(CMAKE_INSTALL_PREFIX ${PROJECT_BINARY_DIR}/installation)

set(CMAKE_AUTOMOC ON)

set(SOURCES ${PROJECT_SOURCE_DIR}/src)

#### This made the build process reach 100%, but still exiting with the same error message
###set(Qt5_USE_STATIC_LIBS ON)    
###set(Qt5_USE_STATIC_RUNTIME ON)

# Find the necessary qt libraries    
find_package(Qt5 COMPONENTS Gui Quick Qml Multimedia)

if ( NOT Qt5_FOUND )    
 message(FATAL_ERROR "Package QT …
Run Code Online (Sandbox Code Playgroud)

linux qt cmake static-linking qt5

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

QML mapToGlobal() 相对于屏幕或应用程序窗口

我遇到过一些奇怪的行为。

项目的 mapToGlobal() 或 mapFromGlobal() 方法在坐标相对于什么方面似乎不一致。

对于某些项目,位置是相对于应用程序窗口的。

对于其他项目,位置是相对于我的屏幕的。如果我在屏幕上移动应用程序窗口,它们将会有所不同。

下面是我的代码的简化示例(实际上我有多个组件和信号来决定应该加载哪个组件)。

MyType.qml:

Item{
  Button{
    onClicked: {
      loader.sourceComponent = component; // Different positions
    }
  }
  Loader{
    id: loader
    anchors.fill: parent
  }

  Component{
    id: component
    Rectangle{
      Component.onCompleted: {
        var point = mapFromGlobal(0, 0);
        console.log("temp 2: ", point.x, point.y);
      }
    }
  }

  Component.onCompleted: {
    //loader.sourceComponent = component; // Same positions
    var point = mapFromGlobal(0, 0);
    console.log("temp 1: ", point.x, point.y);
  }
}
Run Code Online (Sandbox Code Playgroud)

主.qml

ApplicationWindow {
  id: appWindow

  visible: true

  width: 600
  height: 400

  MyType{
    anchors.fill: …
Run Code Online (Sandbox Code Playgroud)

qt qml

5
推荐指数
0
解决办法
3773
查看次数

node.js中MongoDB cursor.toArray()的替代方法

我目前正在使用MongoDB游标的toArray()函数将数据库结果转换为数组:

run = true;
count = 0;
var start = process.hrtime();
db.collection.find({}, {limit: 2000}).toArray(function(err, docs){
  var diff = process.hrtime(start);
  run = false;
  socket.emit('result', {
    result: docs,
    time: diff[0] * 1000 + diff[1] / 1000000,
    ticks: count
  });
  if(err) console.log(err);
});
Run Code Online (Sandbox Code Playgroud)

此操作在我的计算机上大约需要7毫秒.如果我删除.toArray()函数,那么操作大约需要0.15ms.当然这不起作用,因为我需要转发数据,但是我想知道函数是做什么的,因为它花了这么长时间?数据库中的每个文档只包含4个数字.

最后,我希望在一个更小的处理器上运行它,比如Raspberry Pi,这里从数据库中获取500个文件并将其转换为数组的操作大约需要230ms.这对我来说似乎很重要.或者我只是期待太多?

有没有其他方法可以在不使用toArray()的情况下从数据库中获取数据?

我注意到的另一件事是整个Node应用程序在获取数据库结果时显着减慢.我创建了一个简单的间隔函数,它应该每1 ms增加一次计数值:

setInterval(function(){
  if(run) count++;
}, 1);
Run Code Online (Sandbox Code Playgroud)

然后我希望计数值几乎与时间相同,但是在我的计算机上16 ms的时间内,计数值为3或4.在Raspberry Pi上,计数值从未递增.什么占用了这么多CPU?显示器告诉我,当我被要求重复运行数据库查询时,我的计算机使用了27%的CPU,并且Raspberry Pi使用了92%的CPU和11%的RAM.

我知道那是很多问题.任何帮助或解释都非常感谢.我还是Node和MongoDB的新手.

performance node.js node-mongodb-native

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

如何在Qt中的弹出窗口小部件上创建平滑的圆角

我一直在寻找几个小时 - 没有太多运气.

我有一个带有windowsflag Qt :: Popup设置的小部件,我正在尝试创建光滑的圆角.

我尝试过使用样式表,但角落的透明部分变黑了.如果覆盖窗口小部件的绘制事件并在窗口小部件中绘制带圆角的矩形,则会发生相同的情况.我也尝试设置一个掩码,但结果变得非常像素化.

经过一些阅读后,我发现黑角出现是因为小部件是顶级小部件.但我认为它仍然可能以某种方式?

有谁知道我能做些什么来摆脱黑角或使面具光滑?任何想法都表示赞赏!

油漆事件:

void PopUp::paintEvent(QPaintEvent *event)
{
    QPainter painter(this);

    QColor greyColor(0xFFC5C6C6);
    QRect rect(0, 0, width(), height());  
    painter.setRenderHint(QPainter::Antialiasing);
    painter.setBrush(QBrush(greyColor));
    painter.setPen(QPen(greyColor));
    painter.drawRoundedRect(rect, 10, 10);
}
Run Code Online (Sandbox Code Playgroud)

设置掩码的功能:

void PopUp::setRoundedCorners(int radius)
{
    QRegion verticalRegion(0, radius, width(), height() - 2 * radius);
    QRegion horizontalRegion(radius, 0, width() - 2 * radius, height());
    QRegion circle(0, 0, 2 * radius, 2 * radius, QRegion::Ellipse);

    QRegion region = verticalRegion.united(horizontalRegion);
    region = region.united(circle);
    region = region.united(circle.translated(width() - 2 * radius, 0));
    region …
Run Code Online (Sandbox Code Playgroud)

windows qt styling qt5

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

错误“未捕获的 PDOException”,即使我使用 try-catch

我正在使用 PDO 连接到 mySQL 数据库。当登录错误时,即使我使用了 try-catch,它也会给出完整的错误堆栈跟踪。

try
{
    $this->db = new PDO("mysql:host='host' dbname='db' charset=utf8", $username, $password);        

    // Tried both with and without these attributes
    $this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $this->db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
}
catch(PDOException $e)
{
    echo "Database connection error: " . $e->getMessage());
    exit;
}
Run Code Online (Sandbox Code Playgroud)

运行此代码时 - 使用不存在的数据库名称 - 我收到以下错误:

致命错误:未捕获的 PDOException:SQLSTATE[HY000] [1044] 用户“user”对数据库“db”的访问被拒绝.....

它打印出所有信息。如果登录时出现错误,我只希望代码退出并将消息写入日志文件。

为什么catch没有捕捉到这个异常?

我在我的 Windows 计算机上使用本地 Apache 服务器。也许这是由一些错误配置引起的?

任何帮助表示赞赏。

php mysql pdo

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

致命错误:gst/gst.h:没有这样的文件或目录(使用CMake)

我正在尝试使用CMake使用gstreamer构建一个C++应用程序.在我的CMakeLists.txt文件中,gstreamer包含在以下行中:

find_package(PkgConfig REQUIRED)

pkg_search_module(GST REQUIRED gstreamer-1.0>=1.4
    gstreamer-sdp-1.0>=1.4
    gstreamer-video-1.0>=1.4
    gstreamer-app-1.0>=1.4)
Run Code Online (Sandbox Code Playgroud)

我可以运行cmake没有任何错误,但make给出以下错误:

致命错误:gst/gst.h:没有这样的文件或目录

安装了Gstreamer,我检查了gst.h文件和/usr/include/gstreamer-1.0/gst/gst.h以及其他gstreamer头文件.

已设置以下环境变量:

export PKG_CONFIG_PATH=/opt/qt-5.9.1/lib/pkgconfig
export LD_LIBRARY_PATH=/opt/qt-5.9.1/lib
export GST_PLUGIN_PATH=/usr/include/gstreamer-1.0
Run Code Online (Sandbox Code Playgroud)

我还检查了pkg-config的输出,在另一篇文章中提出了类似的问题:

$ pkg-config --cflags gstreamer-1.0
-pthread -I/usr/include/gstreamer-1.0 -I/usr/lib/x86_64-linux-gnu/gstreamer-1.0/include -I/usr/include/glib-2.0 -I/usr/x86_64-linux-gnu/glib-2.0/include
Run Code Online (Sandbox Code Playgroud)

那为什么不能找到gstreamer头文件呢?

(我是gstreamer和CMake的新手)

c++ cmake gstreamer

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

如何使用Q_PROPERTY公开自定义对象的列表

我有一个非常简单的类,具有2个属性;关键和价值:

KeyValue.h:

class KeyValue : public QObject
{
  Q_OBJECT
  Q_PROPERTY(QString key READ getKey WRITE setKey NOTIFY keyChanged)
  Q_PROPERTY(QString value READ getValue WRITE setValue NOTIFY valueChanged)

 public:
  KeyValue(const QString& key, const QString& value, QObject* parent = 0);  

 signals:
  void keyChanged();
  void valueChanged();

 private:
  QString _key;
  QString _value;

  QString getKey() const;
  QString getValue() const;

  void setKey(const QString& key);  
  void setValue(const QString& value);
};
Q_DECLARE_METATYPE(KeyValue)
Run Code Online (Sandbox Code Playgroud)

在另一个类中,我想要一个包含KeyValue对象列表的属性,因此我可以将此列表用作QML中的模型。

控制器

class Controller : public QObject
{
  Q_OBJECT
  Q_PROPERTY(QList<KeyValue*> items READ getItems NOTIFY itemsChanged)

 public:
  explicit Controller(QObject* …
Run Code Online (Sandbox Code Playgroud)

c++ qt qml qt5

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

以编程方式在 Angular/JavaScript 中的列表的单个元素上触发单击

我正在编写一个测试,我想单击列表中的第二项并检查某些内容是否已更改。

我有一个项目符号列表元素:

<ul>
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

我尝试了以下(元素是包含整个列表的角度元素):

var li = element.find('li');

li.triggerHandler('click'); //Clicks all elements
li[1].triggerHandler('click'); //Error: li[1].triggerHandler is not a function
Run Code Online (Sandbox Code Playgroud)

这些都不起作用。第一次尝试单击所有项目,第二次尝试引发错误。

任何想法如何只触发第二个项目的点击?

javascript unit-testing angularjs

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

vendor/bin/phpunit不适用于Lumen

我是Lumen(和Laravel)的新手.我用Composer创建了一个项目,现在我正在尝试让PHPUnit工作.

我正在关注一本书,在那里应该可以通过键入vendor/bin/phpunit终端来运行默认的传递测试,但它会给出错误:

'vendor'不被识别为内部或外部命令,可操作程序或批处理文件

我已经检查过phpunit文件实际存在,并且我的composer.json文件中将phpunit添加为依赖项.我也试过./vendor/bin/phpunitvendor/bin/phpunit/phpunit,但具有相同的结果.

我搜索谷歌寻找解决方案,但其他人似乎在运行时遇到问题phpunit(没有供应商/ bin),解决方案是使用完整路径vendor/bin/phpunit,但是因为我已经这样做了,所以不解决我的问题.

我在Windows机器上使用PHPStorm并通过PHPStorm运行PHP服务器.我没有修改默认的Lumen项目.

任何帮助是极大的赞赏!

更新:

尝试php vendor/bin/phpunit给出以下错误:

您需要使用以下命令设置项目依赖项:
wget http://getcomposer.org/composer.phar
php composer.phar install

我不确定这意味着什么,因为我已经安装了Composer.我使用Composer创建项目,但我没有更改默认的依赖项.

php phpunit laravel lumen

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

Android SDK Manager错误:不支持的major.minor版本52.0

我想用Qt为Android制作应用程序(后来希望iOS).我已下载Android SDK Manager命令行工具并运行sdkmanager --list,但它出现以下错误:

C:\ Users\MyUser\Development\Android\sdk\tools\bin> sdkmanager --list

线程"main"中的异常java.lang.UnsupportedClassVersionError:com/android/sdklib/tool/SdkManagerCli:java.lang.ClassLoader.defineClass(ClassLoader)java.lang.ClassLoader.defineClass1(Native Method)中不支持的major.minor版本52.0 .java:800)java.net.URLC上的java.securityClassLoader.defineClass(SecureClassLoader.java:142)java.net.URLClassLoader.defineClass(URLClassLoader.java:449),java.net.URLClassLoader.access $ 100(URLClassLoader.java:71 )java.net.URLClassLoader $ 1.run(URLClassLoader.java:361)at java.net.URLClassLoader $ 1.run(URLClassLoader.java:355)at java.security.AccessController.doPrivileged(Native Method)at java.net. URLClassLoader.findClass(URLClassLoader.java:354)at java.lang.ClassLoader.loadClass(ClassLoader.java:425)at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:308)at java.lang.ClassLoader.loadClass (ClassLoader.java:358)at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

我正在使用Windows 10.

我已将SDK Manager的路径添加到Windows环境路径,并尝试从bin目录和另一个目录运行该命令.我仍然得到错误.

一些类似的问题建议检查/更新Java SE Development Kit.我已经尝试了版本7,8和9,但我仍然得到相同的错误.

我还尝试以管理员身份运行命令提示符.还是一样的错误.

我完全没有想法......

有谁知道我做错了什么?我以前没有Android应用程序开发或Java的经验.

qt android android-sdk-manager

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

调整包含画布的 div

我有一个包含画布的 div:

<div class="canvas-wrapper">
    <canvas height="30px"></canvas>
</div>
Run Code Online (Sandbox Code Playgroud)

“画布包装器”类的 CSS:

.canvas-wrapper{
    width: 100%;
    overflow: hidden;
}
Run Code Online (Sandbox Code Playgroud)

每当 div 的宽度发生变化时,画布宽度就会更新(Angular 指令):

link: function(scope, element, attr){
    var canvas = element.find('canvas')[0];
    var div = element.find('div')[0];

    scope.$watch(function(){
        return div.offsetWidth;
    }, function(newVal, oldVal){
        canvas.width = newVal;
    });
}
Run Code Online (Sandbox Code Playgroud)

我已经通过调整浏览器宽度对此进行了测试。当我增加窗口时它工作正常,但是当我减少窗口时,div 不会调整大小。

我想那是因为它包含画布,但我该如何解决这个问题?画布应该遵循 div 宽度,而不是块调整大小。

有任何想法吗?

javascript html5-canvas

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