草庐IT

QT多线程

全部标签

windows - Windows 上未显示 Qt5 快速应用程序窗口

该程序在Linux上运行良好。当在QtCreator中启动时,该程序在调试和发布时也运行良好。没有任何qml文件的任何部分丢失的提示。现在当我为这个可执行文件运行windeployqt时,很多文件被复制到目标目录。但是当我启动程序时,它只出现在任务管理器中。没有显示窗口。一开始我以为和里面用到的QtCharts模块有关系。但是创建一个新项目,编译后输出似乎很好,在运行windeployqt后甚至QtCreator告诉我“QtQuick.Window”未安装“QtQuick.Dialogs”未安装“QtQuick”未安装那么-这里到底发生了什么?是否可以在Windows上部署QtQuic

用于从外部线程更改标签文本的 C# 通用方法。

好吧,所以这是(希望)一个非常简单的修复,但我正在尝试创建一个通用方法来允许外部访问标签,现在Windows文档确实针对单个案例给出了一个示例delegatevoidSetTextCallback(stringtext);...someothercode...privatevoidSetText(stringtext){//InvokeRequiredrequiredcomparesthethreadIDofthe//callingthreadtothethreadIDofthecreatingthread.//Ifthesethreadsaredifferent,itreturnst

c++ - 一个线程写入一个变量,另一个线程读取该变量我(C++11 之前)如何保护该变量?

我在C++11之前工作,否则我只会使用包含线程和原子变量来满足我的需要,但是,不能那样做。得到一个在实例化时启动多个线程的类。在一个线程启动函数中,我有类似的东西:voidThisClass::ThisThread(){while(runThisThread){//doingstuff}}另一个函数是:voidThisClass::StopThisThread(){runThisThread=false;//'runThisThread'variableis'volatilebool'}一个线程将根据另一个线程分配的索引咀嚼缓冲区。因此,一个线程会分配一个值,而另一个线程除了读取该值外

qt - qt pro文件中的空间问题

我想在qtpro文件中添加应用程序名称的宏(生成常量),稍后在代码中使用它。例如:QMAKE_TARGET_NAME=FooBarDEFINES+=APP_NAME=\\\"$$QMAKE_TARGET_NAME\\\"当我使用:qDebug() 最佳答案 DEFINES+=APP_NAME=$$shell_quote($$QMAKE_TARGET_NAME)或者如果"应该是定义的一部分,那么DEFINES+=APP_NAME=$$shell_quote(\"$$QMAKE_TARGET_NAME\")

windows - 尝试在 Windows 32 位系统中创建超过最大可能数量的线程

当我尝试创建另一个线程时会发生什么(在达到最大线程数之后?) 最佳答案 当资源用完时,CreateThread将失败。ERROR_NOT_ENOUGH_MEMORY在正常配置中,ERROR_NO_SYSTEM_RESOURCES具有小堆栈保留。参见PushingtheLimitsofWindows:ProcessesandThreads了解更多详情。 关于windows-尝试在Windows32位系统中创建超过最大可能数量的线程,我们在StackOverflow上找到一个类似的问题:

c++ - 仅消息窗口中的线程泵消息

我需要创建一个dll来管理Windows8.1/10上的一些IP蓝牙低功耗设备。我的第一个挑战是能够拦截连接/断开连接事件。我按照MSDN对registeringBluetoothdevicenotifications的说明设法实现了这一点,并按照RegisteringforDeviceNotifications例子。结果是一个工作控制台应用程序。接下来,我希望将它包装在一个DLL中,并有一个专门的线程泵来处理纯消息窗口的消息。问题:这是一个合理的解决方案,还是我最好使用调用线程为此窗口(显然既不是单一窗口也不是主要窗口)泵送消息?如果这是要走的路,我该如何创建一个线程来为特定窗口发送

c++ - 为什么 Qt .pro 文件会为平台提供错误,即使未选择或提及它也是如此?

在我的Qt.pro文件中,以下给出了Windows操作系统的编译错误:!win32{QMAKE_CXXFLAGS+=-Wno-unused-parameter-Wno-missing-field-initializers-Wimplicit-fallthrough=0}根据qmaketutorial,Windows平台应该绕过上面的block。然而,即使它不适用,它也会给出错误,因为它正在对Windows进行健全性检查。这样的例子还有很多。如何修复此类错误? 最佳答案 在这种情况下,问题是由于QtQMake语法引起的。从这个链接QM

linux - C++11线程库是否调用OS API来运行多线程程序?

众所周知,我们可以使用C++库编写通用的跨平台多线程代码(无论Linux还是Windows),我想知道为什么c++11使它变得简单,它实际上是调用OSAPI,还是使用一些其他技术? 最佳答案 C++只是一种您用来表达想法的语言。最后,您的二进制文件仍然必须使用操作系统的功能来执行任何需要系统级访问的操作,例如操纵系统调度程序(例如:创建线程)。您的编译器和库使用哪些操作系统功能来支持C++语言功能的详细信息可以在它们的文档中找到。我想大多数Linuxenvs在C++线程的引擎盖下使用pthread,而Windows环境使用win32

c++ - Qt 写入 xml:QIODevice::write (QFile, "D:/logs.xml"): device not open

我正在尝试将数据保存到Qt中的XML文件中。到处都被告知我需要写这样的检查:if(!file.open(QIODevice::WriteOnly|QIODevice::Text)){qDebug()我总是得到“无法打开”的结果。我就是找不到任何相关信息。如果我不使用这个检查,我会得到这样的错误:QIODevice::write(QFile,"D:/logs.xml"):devicenotopen。我只是不知道该怎么办。这是我在教程中尝试使用的完整代码:QDomDocumentdocument;//MakingtherootelementQDomElementroot=document.

windows - Qt Creator 在Windows 10 上无法打开 "no Qt platform plugin could be initialized"

我从我的SurfacePro4中删除了Qt并重新安装它,因为它似乎无法找到QtQuick控件和其他qml相关模块。执行安装程序后,我尝试打开qtcreator并收到此消息ThisapplicationfailedtostartbecausenoQtplatformplugincouldbeinitialized.Reinstallingtheapplicationmayfixthisproblem.Availableplatformpluginsare:direct2d,minimal,offscreen,windows 最佳答案