Qt日志工具多线程化,在另一个线程中调用参数数量可变的信号和槽,混合C和C++
这是我的记录课: #include "log.h" #include "ui_log.h" #include #include bool Log::logOpen = false; Log::Log(QWidget *parent) : QDialog(parent), ui(new Ui::Log) { ui->setupUi(this); text = new QString; this->bar = this->ui->logText->verticalScrollBar(); connect(this, SIGNAL(call_write(char*)), this, SLOT(write(char*))); } Log::~Log() { delete ui; } void Log::on_buttonClose_clicked() { Log::logOpen = false
0 2024-04-09
编程技术问答社区
Qt 5和QProcess用信号/槽的readyRead重定向stdout
这个问题困扰着我,因为它应该起作用,但可悲的是没有. 我尝试实现的是读取特定过程的标准输出,并使另一个过程处理它. 将其打印出来. 产生输出的过程看起来像: #include #include #include int main() { for (int i = 0; i ... QProcess * process = new QProcess; SomeClass * someClass = new SomeClass(process); connect(process,SIGNAL(ready
2 2024-04-06
编程技术问答社区
如何为所有unix版本创建一个qt应用程序?
我能够创建一个依赖于webkit和webkit和脚本的应用程序和动态构建.我尝试了静态构建,但我没有如何在静态构建中包含WebKit.此外,使用共享库的方法来创建独立应用程序.请在这里帮助我. 解决方案 部署动态链接的QT应用程序: 您应该将QT放置,以便沿您的可执行文件的发行版本进行文件.这些是libQtCore.so,libQtGui.so,也可能是您使用的其他模块.这些文件在您的LIB文件夹中或目录/usr/lib/i386-linux-gnu中安装的QT目录中.如果使用插件,则应将其SO文件放在二进制文件旁边的名为plugins的文件夹中.如果使用图标和图像,则应在名为imageformats的文件夹中运送其SO文件,例如libqico.so和libqsvg.so. 需要共享库: 如果您希望您的应用程序在裸露的Linux上独立运行,则应收集所有依赖的共享库并将其放入应用程序目录中.您可以简单地通过名为 cpld 来执行此操作.您可以轻松地将所有依赖项复制
6 2024-04-05
编程技术问答社区
我如何在Windows上用GCC 11.1构建Qt 5.13.2?
我使用GCC/Mingw-W64在Windows上成功建造了QT 5.当我使用GCC 11.1尝试相同时,构建会失败,而奇怪的错误消息.我该怎么做才能使它起作用? 我已经使用../build --mode=gcc-11.1.0 --arch=x86_64 --buildroot=/c/mingw-builds/BuildRoot --update-sources --exceptions=seh --threads=posix --enable-languages=c++ --jobs=48 --rt-version=v7 然后我在msys2控制台上像这样检索qt: # Ensure that the right Perl is being used to prevent the possible later compilation error "fatal error: QVector: No such file or directory" export PATH=/
0 2024-04-05
编程技术问答社区
有什么办法可以在没有OpenGL的情况下使用QtWebEngine?
我正在尝试使Qtwebengine在VM上运行,并且遇到困难.根据这个问题: 最终,我意识到OpenGL 3.3在虚拟机上无法轻松工作.我必须从Ubuntu USB启动,然后通过安装最新的Mesa 3D软件包从那里开始工作. 有没有办法让Qtwebengine在没有OpenGL的情况下工作?我不直接使用任何openGL调用,也不需要任何3D功能.我只想嵌入QWebEngineView以显示动态HTML页面.我猜这应该是可能的,因为Chrome在同一VM上工作而没有问题. 解决方案 我认为没有QT WebEngine没有OpenGL的方法.它在文档中不是很明确地说,但这是我从发现的内容中理解的. 关于 在这里,Qtwebengine将Chromium快速移动的Web功能整合到QT中.另外,正是铬可以通过QT快速场景图( source source source source source source source允许操纵OpenGL ): 铬紧密整合到QT
2 2024-04-05
编程技术问答社区
使用Pyinstaller复制窗口的PyQT应用程序
我需要在Windows上构建可执行文件,但是我正在使用ubuntu.我对在Linux上构建.exe的可能性很高.无法使用wine来做到这一点,因为包含包装的问题,现在我试图使用windows 10 on virtual box. 进行此操作. 我使用QtDesigner为我的应用构建了用户界面.在场景的后面,它使用undetected-chromedriver,webdriver-manager下载WebDriver.应用只有一个按钮. 我构建了用于测试Linux的应用程序,一切正常.当我在Virtual Box的Windows上构建它时,单击按钮,应用程序窗口正在崩溃,但不会关闭,opening second window of app却无所事事. 项目文件夹包含2个文件:app.py和scrap.py pyinstaller日志: E:\Programming\10.Review_scrapper>venv\Scripts\python.exe venv\
0 2024-04-04
编程技术问答社区
计算着色器没有写入SSBO
我正在编写一个简单的测试计算着色器,该着色器的值为5.0的值为缓冲区中的每个元素.缓冲区的值初始化为-1,因此我知道是否创建缓冲区并阅读缓冲区是问题. class ComputeShaderWindow : public QOpenGLWindow { public: void initializeGL() { // Create the opengl functions object gl = context()->versionFunctions(); m_compute_program = new QOpenGLShaderProgram(this); auto compute_shader_s = fs::readFile( "test_assets/example_comp
0 2024-04-04
编程技术问答社区
如何在QT源代码中设置断点?
作为 this ,我想知道,由于QT5使用完整的源代码分发,是否可以在qt本身内设置debugger break-points? 是否有符号文件用QT5运送二进制构建?我必须构建自己的QT才能做到吗? 在Ubuntu上与QT Creator一起使用QT5内的断点的最快方法是什么? 解决方案 您需要然后,在qtCreator中,您可以转到选项> debugger>常规和" 添加qt-sources ".
8 2024-04-03
编程技术问答社区
QT5迁移和Boost:if.hpp: 宏参数不匹配的问题
在QT 4.8中,我使用了Boost(1.52)一切都可以...现在,我尝试移动到QT5并在LINE 131 BOOST_MPL_AUX_NA_SPEC(3, if_)上获得if.hpp: Macro argument mismatch错误.在某些 qt论坛 有这样的解决方案: #ifndef Q_MOC_RUN // All boost includes #endif // Q_MOC_RUN 在我使用Boost的每个文件中...因此,这里的问题是 - 如何分辨QT尚未准备好BOOST_MPL_AUX_NA_SPEC,而Boost将使用一些更原始的预处理语法,一个QT5兼容? 更新:找到此解决方案 似乎根本没有在qt5 =( )中带来任何效果 解决方案 这是我在搜寻网络几个小时后能够找到的最好的解决方法.基本上,这是其他人在说的,但是有一些澄清. 问题与moc.exe有关,无法正确处理增强宏. 为了解决这个问题,我们通过定义MOC.EXE过程的后卫来禁用加强标
4 2024-04-02
编程技术问答社区
Yocto:如何删除一个层而不重建所有层
我正在使用一个在其conf/bblayers.conf文件中具有以下行中的Yocto项目: ADDONSLAYERS += "${@'${OEROOT}/layers/meta-qt5' if os.path.isfile('${OEROOT}/layers/meta-qt5/conf/layer.conf') else ''}" 我部分地打了该项目,但现在我想尝试禁用整个Meta-QT5层. 评论上面的行后,如何从输出文件夹中删除已经构建的文件并继续使用? 我尝试了bitbake -c cleansstate meta-qt5,但它不起作用.我猜它仅适用于食谱,而不是整个层. 解决方案 清洁构建的最简单方法是删除 tmpdir 临时文件夹(默认为/tmp). 将删除先前的汇编结果,但也将其保留在 sstate_dir 缓存文件夹.下一个构建不会重建所有内容,它将重复使用缓存结果以加快速度. 然后,您可以使用# Example of us
10 2024-03-31
编程技术问答社区
如何使用复选框改变QGraphicsView的背景?
在此代码中,它更改QGraphicsView背景.当我设置checkBox检查false时.我需要为普通默认方式设置QGraphicsView.我该怎么做. 这是我的代码: mainwindow.cpp #include "mainwindow.h" #include MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { scene = new Scene(this); scene->setSceneRect(10,10,260,200); view = new QGraphicsView(scene); setCentralWidget(view); } mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include
2 2024-03-27
编程技术问答社区
如何使用Qt 5.1获得歌曲的长度?
如何在QT 5.1 API中获得歌曲的长度?我想我可以使用Length元数据阅读它,但我不确定是否可以使用此元数据. 解决方案 您似乎正在寻找duration属性. 这将是QML解决方案: 此属性以毫秒为单位. 如果媒体没有固定的持续时间(例如,实时流)将是0. 这将是C ++解决方案: 在微秒中返回此缓冲区中音频的持续时间. 这取决于/l格式()和framecount(). 其他解决方案 您可以使用QMediaPlayer的另一种方法.一个例子是: QMediaPlayer *player = new QMediaPlayer; player->setMedia(QUrl::fromLocalFile("C:/Users/Music/mySong.mp4")); qDebug()
4 2024-03-19
编程技术问答社区
在Qt5中,如何知道QSerialPort何时准备好接受更多的数据?
当我的串行设备准备接收更多数据时,是否有一些通知? 我正在实施一个程序,该程序使用 qserialport .该程序有效,但看来我正在经历交通拥堵. 在我的应用程序中,我保留了最新更新的伺服位置的注册表,我希望与控制器同步,尽可能低.我尝试在时间迅速将新数据推向串行端口的尝试使我能够导致我认为的数据,使通信完全分解. 我的问题是,当在 asynchronous 模式中使用QSerialPort时,串行接口准备接收新数据时,我是否可以通知我? 我看到的唯一其他选项是使用同步模式并调用注意:我已经研究了 qt5文档中的串行端口示例小心,但是 asynchronous写作示例我需要的信息,因为它在退出之前执行一声发送. 解决方案 您可以收听信号bytesWritten并检查bytesToWrite以确定写缓冲区是否为空.两者都从QIODevice. 继承
2 2024-03-18
编程技术问答社区
C2440: '=': 不能从'const char [9]'转换为'char*'。
我正在研究用C ++编写的QT5项目.构建项目给出了一个错误: c2440:'=':无法从'const char [9]'转换为'char*' 指向下面的代码线: port_name= "\\\\.\\COM4";//COM4-macine, COM4-11 Office SerialPort arduino(port_name); if (arduino.isConnected()) qDebug()
6 2024-03-03
编程技术问答社区
在Archlinux上无法找到或加载Qt平台插件 "xcb"(Write!AppImage)。
尝试安装写入!安装QT5,Freetype2 2.9.1和FontConfig 2:2.13.1+12+12+G5F5C56-1 [levi@astize Write!]$ ./write This application failed to start because it could not find or load the Qt platform plugin "xcb" in "". Available platform plugins are: xcb. Reinstalling the application may fix this problem. Aborted (core dumped) 使用QT_DEBUG_PLUGINS=1 运行时 [levi@astize Write!]$ ./write QFactoryLoader::QFactoryLoader() checking directory path "/tmp/.mount_unuY6s/u
30 2024-03-03
编程技术问答社区
如何在Qt5中为QPushButton设置动画图标?
QPushButton可以具有图标,但是我需要为其设置动画图标.这个怎么做? 我创建了从QPushButton实现的新类,但是如何将图标从QIcon替换为QMovie? 解决方案 由于我今天必须解决这个问题,所以我只是想放弃为未来人找到的解决方案,因为这个问题有很多观点,我认为解决方案非常优雅.该解决方案发布了在这里.它每次都设置按钮的图标,Qmovie的框架会发生变化: auto movie = new QMovie(this); movie->setFileName(":/sample.gif"); connect(movie, &QMovie::frameChanged, [=]{ pushButton->setIcon(movie->currentPixmap()); }); movie->start(); 这也具有优势,即在Qmovie启动之前不会出现图标.这也是Python解决方案,我为我的项目派生: #'hide' the icon on the
4 2024-02-26
编程技术问答社区
为Android开发配置Qt Creator
我已经安装了: QT 5.14.1 用于MSVC 2017&Android安装到c:\Qt\Qt5.14.1\: QT创建者中可用的编译器: 可用套件: JDK-13.0.2 安装到c:\Program Files\Java\jdk-13.0.2 Android Studio 3.6.1 g:\Android\Android Studio\ SDK安装在g:\Android\SDK上,如下所示: SDK工具: 现在我在QT创建者中看到的内容: 如何解决这些错误?它们为什么出现? 编辑:我已经安装了JDK 8而不是13.但仍然具有相同的红色十字. 也在主题中'平台SDK已安装'红色X添加QT创建者中的Android SDK工具表示必须安装SDK 25.2.5,我如何安装SDK 25.2.5? Android Studio在系统设置中没有此版本. 编辑2:我已经从链接 将存档纸解开为文件夹g:\Android\SDK\tool
8 2024-02-17
编程技术问答社区
在Android上使用Qt的安装
我正在尝试为Android安装QT 5.1,我正在使用此处描述的步骤: http://qt://qt -project.org/wiki/qt5forandroidbuilding 我安装了所有先决条件(JDK,Android SDK,NDK等).我的问题是第4步,我无法从Git Repo(git://gitorious.org/qt/qt5.git)下载QT 5. 有人遇到了同样的问题吗? 我直接从 http://qt-project.org/down.org/downloads 中直接从 中但这不会建立.当我使用步骤4.4(configure -....)时,我得到了The system cannot find the file specified: arch.cpp and arch.obj错误. 如果您有一个链接或可以帮助我安装QT并将应用程序部署到Android的内容,请分享. 解决方案 您已经在QT项目上下载的QT Android版本已经构建
10 2024-02-17
编程技术问答社区
JNI_OnLoad返回错误的版本(-1)。
我正在尝试在我的Android应用程序中加载QT5Core库,我得到了: JNI_OnLoad returned bad version (-1) in /data/data/com.xxx.yyy/lib/libQt5Core.so 0x41a8f3c0 Failed to load library : Qt5Core due to link error unknown failure java.lang.UnsatisfiedLinkError: unknown failure at java.lang.Runtime.loadLibrary(Runtime.java:370) 这是我尝试加载它的方式: system.loadlibrary(s); 其中" S"是一个包含多个库名称的数组.其他库正确加载了. 欢迎任何想法! 编辑 所以我先得到这个: d/dalvikvm(11445):尝试加载lib /data/app-lib/com.x
18 2024-02-17
编程技术问答社区
QT 5 android, 将background_running值改为True
有人知道如何从QT项目中更改Android部署的元数据值.我需要将Background_running设置为true.我可以手动执行此操作,一切都可以正常工作,但是下次我更改代码时,此值已重置为false. 有人知道如何从QT项目中编辑这些值,以便在代码更改之间持续存在值?
4 2024-02-11
编程技术问答社区