草庐IT

c++ - 如何在 Qt 主线程中正确执行 GUI 操作?

我有一个包含两个线程的简单程序:由QtQApplication::exec操作的主要GUI线程由boost::asio::io_service操作的TCP网络线程TCP事件,例如连接或接收数据会导致GUI发生变化。大多数情况下,这些是QLabel上的setText和隐藏各种小部件。目前,我正在TCP客户端线程中执行这些操作,这似乎很不安全。如何将事件正确发布到Qt主线程?我正在寻找boost::asio::io_service::strand::post的Qt变体,它将事件发布到boost::asio::io_service事件循环。 最佳答案

c++ - 为什么 Qt 会从 .qrc 生成一个 .cpp 文件?

Qt在编译资源时生成一个.cpp文件,例如图像,它们在.qrc文件中定义。编译输出如下:/usr/local/Qt-5.5.1/bin/rcc-nameimages../myApplication/images.qrc-oqrc_images.cppg++-c-pipe-g-std=c++0x-Wall-W-D_REENTRANT-fPIC-DQT_QML_DEBUG-DQT_DECLARATIVE_DEBUG-DQT_QUICK_LIB-DQT_MULTIMEDIA_LIB-DQT_GUI_LIB-DQT_QML_LIB-DQT_NETWORK_LIB-DQT_SQL_LIB-DQT

c++ - 为什么 Qt 对着我尖叫德语?

Modul"QtQuick.Controls"istnichtinstalliert我真的不会说德语,我想知道是否有人知道为什么Qt调试输出以英语开始,但切换为德语,导致出现如上所示的消息。我已经在我的所有文件中搜索了German和DE等,但没有成功。我已经在网络和StackOverflow上进行了搜索,但似乎只有我一个人遇到了这个问题。我运行的是Windows7专业版。谁能告诉我为什么切换到德语和/或如何将其改回英语? 最佳答案 这很可能是QTQTBUG-48946“windeployqtaccumulateslocaleswhe

c++ - 当在 QListWidget 中启用触摸屏时双击事件不起作用 QT

我使用此代码在QListWidget中启用触摸屏ui->listWidget->setAttribute(Qt::WA_AcceptTouchEvents,true);ui->listWidget->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);ui->listWidget->setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel);QScroller::grabGesture(ui->listWidget,QScroller::TouchGesture);触

c++ - Qt Creator 如何运行 SUBDIRS 项目

我已经使用QtCreator一段时间了,我的项目越来越大,我想转而使用Qt'sSUBDIRS模板类型,以更好地组织我不断发展的项目。我的项目结构类似如下/master|---master.pro`---project1||---project1.pro|`---...(sourcefilesspecifictoproject1)`---project2||---project2.pro|`---...(sourcefilesspecifictoproject2)`---shared`---...(sourcefilessharedbetweenproject1andproject2)p

c++ - 如何在 Qt 样式表中使用嵌入字体?

我在我的.qrc资源文件中添加了一个字体名称“:font/Oswald-Regular.ttf”。我想在我的Qt样式表中为所有QLabel使用它。这是Arial的代码:QLabel{color:white;font:10pt"Arial";} 最佳答案 将字体添加到main中的字体数据库:QFontDatabase::addApplicationFont(":/fonts/Oswald-Regular.ttf");您可能需要检查函数返回值(0表示成功)和/或数据库中可用的字体:QFontDatabasedb;for(inti=0;i

c++ - 在 Qt 中使用 FreeImage

我有一段C++/Qt代码,我想在其中使用FreeImage库(http://freeimage.sourceforge.net/)加载图像并将最终结果存储在QImage中。我知道Qt可以直接加载一堆图像格式,但我希望能够直接加载一些Qt不支持的格式......我尝试了各种方法让它工作,但没有一个工作。在我展示我的一些失败尝试之前,这是对所有尝试都相同的其余函数。下面的代码片段只是复制并粘贴到这个函数中:QImageload(QStringfilename){FREE_IMAGE_FORMATfif=FreeImage_GetFileType(filename.toStdString()

c++ - Qt 图表 (QML) 日期时间轴中缺少二月

我已经创建了一个QML图表ChartView{id:chartanchors.fill:parentantialiasing:trueValueAxis{id:axisYtickCount:3}DateTimeAxis{id:xTime}SplineSeries{id:chartseriespointsVisible:truepointLabelsVisible:falseuseOpenGL:trueaxisX:xTimeaxisY:axisY}}我还在每个月的月初附加到图表中。刻度点上的工具提示是正确的。在X轴上,Qt本身正在按照它喜欢的方式做同样的事情。如何手动调整Xaxis->s

c++ - 在qt creator中调试时如何访问字符串变量的完整值?

我正在调试我的C++应用程序,我有一些可以包含2000个或更多字符的字符串变量。调试时,变量的值显示不完整(以“...”结尾)而不是显示正确的值。此外,当我右键单击该变量并选择“将当前值复制到剪贴板”时,它也被复制不完整。我认为这一定是一件非常基本的事情,但我没有在qtcreator中找到如何显示变量的实际完整内容?提前致谢。在Tools->debugger->Locals&Expressions中,我已经将“最大字符串长度”和“显示字符串长度”更改为10.000以上的值,但它仍然只显示500个字符。 最佳答案 在LocalandE

c++ - 有没有一些方法可以更改 Qt Creator 语法突出显示的设置?

我在Ubuntu18.10中使用基于Qt5.11.1的QtCreator4.6.2通过CONFIG+=consolec++17keyin.pro进行C++编程>文件,我遇到了以下代码的问题:std::for_each(attributes.begin(),attributes.end(),[&,i{0}](autoit)mutable{compressed.col_id[i]=it.first;i++;});QtCreator将此代码用红色下划线并表示“expectedtoken';'得到'{'"但编译器运行这段代码没有问题。此外,当我尝试运行此代码时:inti=0;std::for_