草庐IT

Qt-FFmpeg

全部标签

c++ - 如果从同一个信号调用两个槽,Qt 可以同时调用它们吗?

如果在两个不同的线程中有两个槽,并且这些槽连接到第三个线程中的信号。两个槽会同时被信号调用还是每次都被同步调用?我问是因为我想发送一些回调数据结构(用QSharedPointer封装)并询问是否需要内部锁定机制。 最佳答案 如果您使用Qt::QueuedConnection将信息传递给线程,则不需要锁定实际的信号/槽调用,因为QueuedConnection机制以线程安全的方式处理此问题。话虽如此,您仍然需要保护您的线程访问的任何共享内存,无论它们是如何调用的。第三个线程发出单个信号以导致调用两个槽这一事实不会改变这一点。

c++ - Qt:某些插槽不会在 Release模式下执行

我正在Qt(MSVC++2008)中做一些简单的程序,只有几个复选框和按钮。在Debug模式下,一切正常,但我不能分发这样的可执行文件,因为大多数人没有安装VisualStudio。当我在Release模式下编译它时,只有2个按钮起作用。我使用QtCreator的“绘图工具”(我猜是QtDesigner)设计了我的窗口。我的头文件中确实定义了这样的插槽:privateslots:voidon_goButton_clicked();//Worksfinevoidon_InputCheckBox_stateChanged(intarg1);//Don'tworkvoidon_outputF

c++ - Qt 中的截屏支持?

我知道有一些非常棒的工具可以捕捉桌面上的动态屏幕,但作为我一直在开发的这个应用程序的一部分,我需要捕捉在特定小部件区域发生的事件。到目前为止,开发完全是在开放的QtSDK之上完成的,但我没有看到任何对截屏视频的支持。除了谷歌搜索之外,我已经探索了该论坛上的所有相关答案。在grabWidget上合并周期性像素图似乎是一种方法,但我希望有更优雅和更强大的东西。我找到的所有howTos都是基于DirectX或GDI。如果在这种情况下存在一个正确的方法或我在GPL许可框架中有其他替代方法,请告诉我正确的方法。 最佳答案 因为没有人提出另一个

c++ - Qt : send Key_Return and Key_Delete events

我正在使用QtEmbedded开发虚拟键盘,但遇到了一个小问题。事实上,我使用SignalMappers将键映射到键盘事件,以便在QTextEdit小部件中显示文本。一切正常,除了两个事件:Key_Return和Key_Delete;我不知道我做错了什么,也许你会有想法。这是一个经典的代码,发送字符:voidVirtualKeyboard::SendChar(intindex){QCharcharToSend(letters_.at(index)->text().at(0));//Getcharserver_->sendKeyEvent(charToSend.unicode(),QEv

c++ - Selenium 和 qt C++?

是否可以将selenium与qtc++一起使用?selenium似乎没有对C++的官方支持?http://seleniumhq.org/download/ 最佳答案 您可以使用json有线协议(protocol)在Qt/C++应用程序中与webdriver服务器通信,但请考虑改用一些脚本语言。例如,Python非常容易学习并且具有webdriver绑定(bind)。http://code.google.com/p/selenium/wiki/JsonWireProtocolhttp://code.google.com/p/selen

c++ - Qt 小部件未显示在主窗口中

我正在尝试创建主应用程序窗口。它应该有一个菜单栏,并在下面显示一个带有分隔符的标签。我的主窗口代码如下。我遇到的问题是菜单栏显示但标签和拆分器不显示。到目前为止我尝试过的事情:1.将拆分器的父级设置为“this”->拆分器显示,但绘制在菜单栏上并且很小。2.将标签的父级设置为“this”->标签显示,但绘制在菜单栏上。3.将分离器的父级设置为“this”,父级和标签->标签不显示,我在菜单栏下方绘制了拖鞋的微型版本。4.尝试重新排列代码行并得到各种其他结果,例如在菜单栏上绘制的大拆分器不随窗口调整大小,在菜单栏下方的小拆分器,只有菜单栏,没有其他任何东西,等等-没有用。看起来垂直布局完

c++, FFMPEG, H264, 创建零延迟流

我正在尝试对视频进行编码(目前使用h264编解码器,但如果更适合我的需要,其他编解码器也可以),以便在一帧(包括第一帧)之后直接提供解码所需的数据)被编码(所以,我只想要I和P帧,没有B帧)。我需要如何设置AVCodecContext才能获得这样的流?到目前为止,我对这些值的测试仍然总是导致avcodec_encode_video()在第一帧返回0。//编辑:这是目前我的AVCodecContext设置代码:staticAVStream*add_video_stream(AVFormatContext*oc,enumCodecIDcodec_id,intw,inth,intfps){A

c++ - FFMPEG:编码后直接解码数据包

我尝试使用FFMPEGAPI将x264视频编码为0帧延迟的MP4文件,并实时在屏幕上显示当前编码的帧(带有编码伪像)。文件的编码有效,但到目前为止,我没有在将帧写入文件后立即对其进行解码。我尝试的是将从avcodec_encode_video()返回的packetdata直接输入avcodec_decode_video2()但该函数返回-1并且cmd输出显示:[h264@00000000025F0710]non-existingPPS0referenced[h264@00000000025F0710]decode_slice_headererror[h264@00000000025F0

【QT专栏】QT中实现多线程的四种方式和线程同步

目录一、继承QThread1.基本概念2.操作流程二、继承QObject(推荐)1.基本概念2.操作流程三、继承QRunnable,配合QThreadPool实现多线程1.外界通信2.QMetaObject::invokeMethod()介绍3.QMetaObject::invokeMethod()使用方式四、使用QtConcurrent::run()1.基本概念2.操作流程3.实现案例五,线程同步1.低级同步原语2.高级事件队列一、继承QThread1.基本概念一个QThread类的对象管理一个子线程,自定义一个类继承自QThread,并重写虚函数run(),在run()函数里实现线程需要完

c++ - 使用 GCC 4.6.2 C++ Qt、MinGW、Vista 设置堆栈大小

我想增加我的程序的堆栈大小,因为我有一个复杂的递归算法,迭代重写将是一个真正的痛苦。我正在使用GCCC++4.6.2。MinGw,在Vista上使用Qt.pro文件构建(我使用Qt作为GUI前端)。本网站的建议是使用:-gcc-Wl,--stack,4194304并将其发送到g++链接阶段:-LIB+=-Wl,--stack,4194304但是链接器错误:-g++:error:unrecognizedoption'--stack,4194304'我尝试使用QMAKE_CXXFLAGS+=将选项发送到编译阶段,但g++仍然barfs。唯一不会barf的选项是GCC文档(.pdf4.5.0