小编nee*_*eru的帖子

对于同一项目,有qml函数和c ++插槽的最佳方法,反之亦然

我想做这样的事情

QML app:

  {
    signal qmlSignal
    function qmlFunction
  }
Run Code Online (Sandbox Code Playgroud)

c++ Hnadler:

  {
     c++ slot
     c++ signal
  }
Run Code Online (Sandbox Code Playgroud)

希望与同一个qml对象进行双向通信.我指的是http://qt-project.org/doc/qt-4.8/qtbinding.html

要从C++中更改qml中的值,我们可以做到

  QDeclarativeEngine engine;
  QDeclarativeComponent component(&engine, "MyItem.qml");
  QObject *object = component.create();

  QVariant returnedValue;
  QVariant msg = "Hello from C++";
  QMetaObject::invokeMethod(object, "myQmlFunction",
     Q_RETURN_ARG(QVariant, returnedValue),
     Q_ARG(QVariant, msg));

 qDebug() << "QML function returned:" << returnedValue.toString();
 delete object;
Run Code Online (Sandbox Code Playgroud)

可以用来调用qml函数.但是有了这个,我们就不能使用QT方法了

class MyClass : public QObject
{
   Q_OBJECT
  public slots:
   void cppSlot(const QString &msg) {
     qDebug() << "Called the C++ slot with message:" << msg;
 } …
Run Code Online (Sandbox Code Playgroud)

c++ qt qml qtquick2

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

Linux进程描述符中union的用法

在阅读"理解Linux内核"时,我发现union正被用于Process Descriptor数据结构.

union thread_union {
   struct thread_info thread_info;
   unsigned long stack[2048]; /* 1024 for 4KB stacks */
};
Run Code Online (Sandbox Code Playgroud)

union thread_union当两个数据结构都被使用时,为什么在这里使用union来联合?

c linux process linux-kernel unions

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

使用gst-launch播放原始视频

我使用filesink创建了一个原始视频文件,我可以使用以下命令使用vlc播放该文件

 vlc --demux rawvideo --rawvid-fps 24 --rawvid-width 1920 --rawvid-height 816 --rawvid-chroma I420 /home/user/Videos/out.yuv
Run Code Online (Sandbox Code Playgroud)

但是,随着

 gst-launch-1.0 filesrc location=/home/user/Videos/out.yuv ! video/x-raw,format=I420,height=816,width=1920,framerate=24 ! autovideoconvert ! autovideosink
Run Code Online (Sandbox Code Playgroud)

抛出错误

Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
ERROR: from element /GstPipeline:pipeline0/GstCapsFilter:capsfilter0: Filter caps do not completely specify the output format
Additional debug info:
gstcapsfilter.c(348): gst_capsfilter_prepare_buf (): /GstPipeline:pipeline0/GstCapsFilter:capsfilter0:
Output caps are unfixed: EMPTY
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...
Run Code Online (Sandbox Code Playgroud)

有任何线索如何解决此错误?

vlc gstreamer gst-launch

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

替换字符而不替换字符串中''内的任何内容

我有一个字符串说例如

var str = "this is 'a simple' a simple 'string' string"
Run Code Online (Sandbox Code Playgroud)

我想替换所有's'字符,例如'p'字符.

str =  "thip ip 'a simple' a pimple 'string' ptring"
Run Code Online (Sandbox Code Playgroud)

接近这个的正确方法是什么?

javascript

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

标签 统计

c ×1

c++ ×1

gst-launch ×1

gstreamer ×1

javascript ×1

linux ×1

linux-kernel ×1

process ×1

qml ×1

qt ×1

qtquick2 ×1

unions ×1

vlc ×1