小编nay*_*ana的帖子

下拉列表中所选项目的QComboBox样式

我想在组合框的下拉菜单中选择所选项目的突出显示.

与其他问题的区别在于我不想设置"选定"项目的样式(用鼠标悬停).但是我对已经选择的项目的样式感兴趣.

默认是某种在文本上绘制的自动收报机.我希望选择的项目有粗体文字,没有自动收报机图像.

或者在最坏的情况下,只需向右移动文本即可正确显示自动收报机.

我有的是这个:

在此输入图像描述

请注意第17个项目,其中包含数字17的自动收报机.

这是我的样式表:

QComboBox
{
    subcontrol-origin: padding;
    subcontrol-position: top right;
    selection-background-color: #111;
    selection-color: yellow;
    color: white;
    background-color: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #565656, stop: 0.1 #525252, stop: 0.5 #4e4e4e, stop: 0.9 #4a4a4a, stop: 1 #464646);
    border-style: solid;
    border: 1px solid #1e1e1e;
    border-radius: 5;
    padding: 1px 0px 1px 20px;
}


QComboBox:hover, QPushButton:hover
{
    border: 1px solid yellow;
    color: white;
}

QComboBox:editable {
    background: red;
    color: pink; …
Run Code Online (Sandbox Code Playgroud)

qt qcombobox qtstylesheets

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

如何通过gstreamer获取h264帧

我熟悉 ffmpeg,但不熟悉 GStreamer。我知道如何通过ffmpeg获取H264帧,例如我可以通过AVPacket获取H264帧。但我不知道如何使用GStreamer来获取h264的帧。我不打算将H264数据直接保存为本地文件,因为我需要做其他处理。谁能给我一些示例代码?我将非常感激。这是我从其他人的代码中学到的。

#include <stdio.h>
#include <string.h>
#include <fstream>
#include <unistd.h>
#include <gst/gst.h>
#include <gst/app/gstappsrc.h>

typedef struct {
    GstPipeline *pipeline;
    GstAppSrc  *src;
    GstElement *filter1;
    GstElement *encoder;
    GstElement *filter2;
    GstElement *parser;
    GstElement *qtmux;
    GstElement *sink;

    GstClockTime timestamp;
    guint sourceid;
} gst_app_t;

static gst_app_t gst_app;

int main()
{
    gst_app_t *app = &gst_app;
    GstStateChangeReturn state_ret;
    gst_init(NULL, NULL); //Initialize Gstreamer
    app->timestamp = 0; //Set timestamp to 0

    //Create pipeline, and pipeline elements
    app->pipeline = (GstPipeline*)gst_pipeline_new("mypipeline");
    app->src    =   (GstAppSrc*)gst_element_factory_make("appsrc", "mysrc");
    app->filter1 =  gst_element_factory_make ("capsfilter", "myfilter1"); …
Run Code Online (Sandbox Code Playgroud)

c codec gstreamer h.264

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

将qt中的git hash打印为在编译时创建的宏

我需要获取有关在编译时使用的git commit(打印出来并在我的About对话框中使用)的信息(make,而不是qmake)。为此可以使用git describe命令。我需要的解决方案是多平台的(至少是Windows Linux),我设法在Windows和Linux上运行的qnake上成功获取git hash。

此命令在qmake运行时执行,效果很好:

DEFINES += GIT_CURRENT_SHA1=$(shell git describe)
Run Code Online (Sandbox Code Playgroud)

但是我需要在编译时执行git describe,因为qmake并非在每次编译时都运行,因此会有旧的提交哈希。

如果我将此代码添加到由qmake生成的Makefile中,则可以正常工作,但是在运行qmake之后当然消失了:

VARIABLE = $(shell cd ../../project/ ; git describe)
DEFINES = -DGIT_CURRENT_SHA1=$(VARIABLE)
Run Code Online (Sandbox Code Playgroud)

而且由于阴影构建不在git存储库目录内,因此存在如何获取正确路径的问题。我需要CD进行投影,然后从那里运行git describe。

因此,有两个子问题:

  • 如何从Qt .pro文件向Makefile添加代码
  • 如何将正确的路径传递给git describe命令

还是有人知道更好的东西?

谢谢

更新1

好的,我发现了如何将Shell代码插入Makefile定义变量中,并且需要在其周围加上引号:

DEFINES += GIT_CURRENT_SHA1="$(shell cd ../../project/ ; git describe)"
Run Code Online (Sandbox Code Playgroud)

但是问题是如何将项目路径传递到其中(由于阴影生成等)

更新2

好的,还找出了该怎么做。

DEFINES += GIT_CURRENT_SHA1="$(shell git -C \""$$_PRO_FILE_PWD_"\" describe)"
Run Code Online (Sandbox Code Playgroud)

但是有一个大问题-如何强制重建使用GIT_CURRENT_SHA1宏的文件 我正在考虑每次都必须生成一些额外的头文件,并将其包含在需要的地方。

c++ git qt makefile

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

停靠区域分割器的 Qt 样式表

当QDockWidget添加到DockWidgetArea时,如何更改QDockWidget旁边的分割器/句柄的样式表。该侧的每个停靠小部件之间有一个主要的可移动手柄和多个手柄。我想至少更改手柄的背景颜色和边框以及悬停颜色。

如果我知道它是什么类型的对象或者获取一些指向 setStyleSheet 句柄的指针,这将会有所帮助。

c++ user-interface qt

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

yocto:重建项目的一部分

我有一个项目正在使用yocto构建包括gstreamer的库。我发现我需要修补一些gstreamer元素,从而用patch创建新的bitbake配方。

我通常必须使用图像名称作为参数运行bitbake,它将重新构建整个yocto(这很长):

MACHINE=some_machine nice bitbake yocto-etc-etc
Run Code Online (Sandbox Code Playgroud)

如何只重建我需要的部分而不是整个yocto?我听说过devtool,但不确定如何使用它。

gstreamer yocto

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

通过 RTSP 发送 jpeg 图像(运动 jpeg) - gStreamer

您好,我正在尝试使用 gstreamer 构建视频流管道,但我很难使其工作。我有一个支持 MJPG 的相机,所以我想将 jpeg 图像传递给jpegparse并使用rtpjpegpay转换为 rtp 。

./test-launch --gst-debug=3 '(v4l2src device=/dev/video0 ! image/jpeg,width=800,height=600 ! jpegparse ! rtpjpegpay name=pay0 pt=96)'
Run Code Online (Sandbox Code Playgroud)

对于接收端,我尝试了 VLC 播放器,但没有成功打开文件。我不知道为什么 - 这是否意味着上面的语法不正确?

有人可以帮忙吗?

我试过

examples$ ./test-launch --gst-debug=3 '(v4l2src device=/dev/video0 ! image/jpeg,width=800,height=600 ! jpegparse ! rtpjpegpay name=pay0 pt=96)'
stream ready at rtsp://127.0.0.1:8554/test

0:00:05.121994463 207540 0x56458325ef60 ERROR           GST_PIPELINE grammar.y:453:gst_parse_element_set: could not set property "pt" in element "pay0" to "96)"
0:00:05.122054890 207540 0x56458325ef60 WARN                 default grammar.y:1137:priv_gst_parse_yyerror: Error during parsing: syntax error, unexpected $end
0:00:05.122069622 207540 0x56458325ef60 …
Run Code Online (Sandbox Code Playgroud)

rtsp gstreamer v4l2

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

标签 统计

gstreamer ×3

qt ×3

c++ ×2

c ×1

codec ×1

git ×1

h.264 ×1

makefile ×1

qcombobox ×1

qtstylesheets ×1

rtsp ×1

user-interface ×1

v4l2 ×1

yocto ×1