Qt way to explore https:https://cdn.v2ex.com/navatar/19b6/5066/863_normal.png?m=1646756512 https:https://cdn.v2ex.com/navatar/19b6/5066/863_large.png?m=1646756512 2025-07-02T20:52:06Z Copyright © 2010-2018, V2EX qt 新手求助: No documents matching 'ui_mainwindow.h' could be found tag:www.v2ex.com,2025-07-02:/t/1142643 2025-07-02T16:54:06Z 2025-07-02T20:52:06Z minecraftyusei member/minecraftyusei 新手上路,整了一个非常单纯的小工程(拿 ai 写的),然后在 ui 设计时右键 Pushbutton 转到槽时被这个问题干碎了,一头雾水,甚至不知道怎么排除错误。

编译日志如下: 00:46:54: 为项目 untitled1 执行步骤 ... 00:46:54: 正在启动 "G:\QtCommunity\Tools\CMake_64\bin\cmake.exe" --build G:/Qtfile/QtProgram/untitled1/build/Qt_6_9_1_Clang_arm64_v8a-Debug --target all

[0/2 0.0/sec] Re-checking globbed directories... [1/9 0.4/sec] Automatic MOC and UIC for target untitled1 [2/9 0.7/sec] Running AUTOMOC file extraction for target untitled1 [3/9 0.9/sec] Running moc --collect-json for target untitled1 [4/9 0.6/sec] Building CXX object CMakeFiles/untitled1.dir/untitled1_autogen/mocs_compilation.cpp.o [5/9 0.8/sec] Building CXX object CMakeFiles/untitled1.dir/main.cpp.o [6/9 0.9/sec] Building CXX object CMakeFiles/untitled1.dir/mainwindow.cpp.o [7/9 0.9/sec] Linking CXX shared module libuntitled1_arm64-v8a.so [8/9 1.0/sec] Copying untitled1 binary to apk folder 00:47:03: The command "G:\QtCommunity\Tools\CMake_64\bin\cmake.exe --build G:/Qtfile/QtProgram/untitled1/build/Qt_6_9_1_Clang_arm64_v8a-Debug --target all" finished successfully. 00:47:03: 正在启动 "G:\QtCommunity\6.9.1\mingw_64\bin\androiddeployqt.exe" --input G:/Qtfile/QtProgram/untitled1/build/Qt_6_9_1_Clang_arm64_v8a-Debug/android-untitled1-deployment-settings.json --output G:/Qtfile/QtProgram/untitled1/build/Qt_6_9_1_Clang_arm64_v8a-Debug/android-build-untitled1 --android-platform android-35 --jdk G:/jdk17 --gradle

Generating Android Package Input file: G:/Qtfile/QtProgram/untitled1/build/Qt_6_9_1_Clang_arm64_v8a-Debug/android-untitled1-deployment-settings.json Output directory: G:/Qtfile/QtProgram/untitled1/build/Qt_6_9_1_Clang_arm64_v8a-Debug/android-build-untitled1/ Application binary: untitled1 Android build platform: android-35 Install to device: No Skipping createRCC Starting a Gradle Daemon, 1 incompatible and 9 stopped Daemons could not be reused, use --status for details

Task :preBuild UP-TO-DATE Task :preDebugBuild UP-TO-DATE Task :mergeDebugNativeDebugMetadata NO-SOURCE Task :javaPreCompileDebug Task :generateDebugResValues Task :checkDebugAarMetadata Task :mapDebugSourceSetPaths Task :generateDebugResources Task :mergeDebugResources Task :packageDebugResources Task :createDebugCompatibleScreenManifests Task :extractDeepLinksDebug Task :parseDebugLocalResources

Task :processDebugMainManifest package="org.qtproject.example.untitled1" found in source AndroidManifest.xml: G:\Qtfile\QtProgram\untitled1\build\Qt_6_9_1_Clang_arm64_v8a-Debug\android-build-untitled1\AndroidManifest.xml. Setting the namespace via the package attribute in the source AndroidManifest.xml is no longer supported, and the value is ignored. Recommendation: remove package="org.qtproject.example.untitled1" from the source AndroidManifest.xml: G:\Qtfile\QtProgram\untitled1\build\Qt_6_9_1_Clang_arm64_v8a-Debug\android-build-untitled1\AndroidManifest.xml.

Task :processDebugManifest Task :mergeDebugShaders Task :compileDebugShaders NO-SOURCE Task :generateDebugAssets UP-TO-DATE Task :mergeDebugAssets Task :compressDebugAssets Task :processDebugJavaRes NO-SOURCE Task :checkDebugDuplicateClasses Task :mergeDebugJniLibFolders Task :mergeLibDexDebug Task :validateSigningDebug Task :writeDebugAppMetadata Task :writeDebugSigningConfigVersions Task :processDebugManifestForPackage Task :mergeDebugNativeLibs Task :mergeDebugJavaResource Task :processDebugResources Task :compileDebugJavaWithJavac Task :dexBuilderDebug Task :desugarDebugFileDependencies Task :mergeProjectDexDebug Task :stripDebugDebugSymbols Task :mergeExtDexDebug Task :packageDebug Task :createDebugApkListingFileRedirect Task :assembleDebug

[Incubating] Problems report is available at: file:///G:/Qtfile/QtProgram/untitled1/build/Qt_6_9_1_Clang_arm64_v8a-Debug/android-build-untitled1/build/reports/problems/problems-report.html

Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.

You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

For more on this, please refer to https://docs.gradle.org/8.12/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.

BUILD SUCCESSFUL in 23s 33 actionable tasks: 33 executed Android package built successfully in 28.935 ms. -- File: G:/Qtfile/QtProgram/untitled1/build/Qt_6_9_1_Clang_arm64_v8a-Debug/android-build-untitled1//build/outputs/apk/debug/android-build-untitled1-debug.apk 00:47:32: The command "G:\QtCommunity\6.9.1\mingw_64\bin\androiddeployqt.exe --input G:/Qtfile/QtProgram/untitled1/build/Qt_6_9_1_Clang_arm64_v8a-Debug/android-untitled1-deployment-settings.json --output G:/Qtfile/QtProgram/untitled1/build/Qt_6_9_1_Clang_arm64_v8a-Debug/android-build-untitled1 --android-platform android-35 --jdk G:/jdk17 --gradle --gdbserver" finished successfully. 00:47:32: Elapsed time: 00:38.

mainwindow.h 如下: #ifndef MAINWINDOW_H #define MAINWINDOW_H

#include <QMainWindow> #include <QLabel>

class MainWindow : public QMainWindow { Q_OBJECT

public: MainWindow(QWidget *parent = nullptr); ~MainWindow();

protected: void mousePressEvent(QMouseEvent *event) override;

private: QLabel *label; };

#endif // MAINWINDOW_H

mainwindow.cpp 如下: #include "mainwindow.h" #include <QMouseEvent> #include <QFont> #include <QDebug>

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { // 设置窗口大小 resize(400, 300);

// 创建 label 但先不显示文字 label = new QLabel(this); label->setText(""); label->setAlignment(Qt::AlignCenter); label->setGeometry(rect()); // 占满整个窗口 label->setFont(QFont("Arial", 24)); 

}

MainWindow::~MainWindow() { }

void MainWindow::mousePressEvent(QMouseEvent *event) { Q_UNUSED(event); label->setText("Hello World"); qDebug() << "屏幕被点击,显示 Hello World"; }

]]> 请教几个 qt6, macos 打包遇到依赖问题。 tag:www.v2ex.com,2025-04-20:/t/1126860 2025-04-20T15:08:49Z 2025-04-20T18:34:29Z tiandishi member/tiandishi 请教几个 qt6 ,macos 打包遇到依赖问题。

我做了个音乐播放器,引用的外部库只有 libmpv ,还引用了 qt 的 sql ,用于处理 sqlite 数据库。问题可能主要出现在这两个。 编译调试运行都没啥问题,开发完成想要打包发布,macdeployqt6 打包出来的却无法运行。 仔细分析认为有些依赖有问题,比如编译的时候 ok ,理论上所有依赖在本机都已经齐全,macdeployqt6 打包却告知会引用 Postgres.app 下面的一个库,而这个 app 我之前根本没有安装。类似的还有 libjxl_cms.0.11.dylib libjxl.0.11.dylib 等图片相关的库,需要额外下载才能打包,编译运行却不需要。

换思路采用 xcode 来打包,先 qmake make 生成 xcode 项目,导入后可以编译运行,archive 打包逐个测试依赖的库,发现不集成部分依赖的 Framework 可运行,全部集成却不行。

第二个问题是,解决完上述依赖文件后,打包的程序.app 还是无法直接双击打开,看汇报日志出现 signed 、ns 等模糊问题。更奇葩的是,有时候采用 lldb 对打包的程序进行调试可以运行,直接打开 app 却打不开。 Termination Reason: Namespace SIGNAL lldb 报错 :qianqianplayer[73941:807292] This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem

求有经验的人指点迷津,如果您不知道我在说啥,可能您难以解决我的问题,就随便看看。

如有任何思路,不胜感激,困扰好几天了。

]]>
新建一个 qt 项目,运行时,底下应用程序输出 1127, FromFilemap tag:www.v2ex.com,2025-04-11:/t/1124697 2025-04-11T03:24:03Z 2025-04-11T03:24:03Z ChainLock member/ChainLock https://imgur.com/a/fYDtDbS

https://imgur.com/bE5INyR

不知道这个 1127, FromFilemap ,是从哪里输出的

]]>
Qt5 托盘菜单右击时的异常 tag:www.v2ex.com,2025-03-25:/t/1121030 2025-03-25T10:59:50Z 2025-03-25T15:41:29Z Bssn member/Bssn 程序运行在 macos, 如下图所示,当右击托盘图标时会发生异常(图中左上角),这是为什么呢? ChatClient-2025-03-25-18

代码如下,还想请教一点,为什么单击的时候也会出现菜单呢?

void MainWindow::SltTrayClicked(QSystemTrayIcon::ActivationReason reason) { switch (reason) { case QSystemTrayIcon::Trigger: // 单击 if (!this->isVisible()) { this->show(); } break; case QSystemTrayIcon::Context: // 右击 if (!m_trayMenu->isVisible()) { m_trayMenu->show(); } break; default: break; } } 
]]>
有没有什么工具可以美化 qt 界面的? tag:www.v2ex.com,2025-03-13:/t/1118027 2025-03-13T01:49:41Z 2025-03-13T07:05:44Z wnpllrzodiac member/wnpllrzodiac
客户需要美化下,能像个正真的发布软件。

有什么工作流可以用?没有美工,产品设计的情况下。比如输入 qt ui 文件或者界面截图,能给个优化方案。代码或者配色,按钮样式,图标,背景什么的 ]]>
Qt 有什么不错的第三方控件库吗? tag:www.v2ex.com,2024-09-11:/t/1071988 2024-09-11T06:28:56Z 2024-09-11T06:25:56Z gegeligegeligo member/gegeligegeligo 要可以集成进 Designer 里面用的。感觉 Qt 自带的控件库有些平淡了

刚刚搜了一会儿,找到了两个看起来还不错的,控件数量也挺多,都是一两百个,只不过都是闭源收费的,这种不太想用,因为假如遇到什么 bug 报错的话,都没办法看源码找原因。

求推荐,谢谢。

]]>
寻求帮助!在 qt creator 里面创建 quick 项目失败,找不到原因。 tag:www.v2ex.com,2024-08-28:/t/1068355 2024-08-28T02:19:02Z 2024-08-28T02:17:02Z nullptr2023 member/nullptr2023 如下图,在 qt creator 创建 qt quick application 项目过程中,勾选“creates”选项,即使最后点完成,也无法创建项目;不勾选则可以。请问为什么? 图 1

]]>
关于 QT 中通过信号与槽的方式启动子线程的问题。 tag:www.v2ex.com,2024-08-26:/t/1067855 2024-08-26T06:36:16Z 2024-08-26T08:45:09Z h3xz member/h3xz 我自定义了一个多线程类TimerThread:

 TimerThread* t_thread = new TimerThread(); QThread* thread = new QThread(); t_thread->moveToThread(thread); 

我想通过界面上的一个按钮ui->startThread来启动子线程:

 connect(ui->startThread, &QPushButton::clicked, thread, &QThread::start); 

但是程序报错:error: static assertion failed: Signal and slot arguments are not compatible. 但是我使用了另一种方法连接信号与槽,程序又能正常运行:

 connect(ui->startThread, &QPushButton::clicked, thread, [&](){ thread->start(); }); 

报错的意思是发送的信号参数与槽函数的参数没有对应。但是当我自己定义一个槽函数void testFun(int); ,并且,点击按钮时发出的信号所携带的参数同样与我自定义的槽函数的参数不能对应,但是程序却能正确运行。

 connect(ui->startThread, &QPushButton::clicked, this, &MainWindow::testFun); 

我非常困惑,大佬能否为我指点迷津,非常感谢🙏🙏🙏

]]>
寻找一起开发这个开源项目的人, qt c++的,信息收藏、Kindle/微信读书/豆瓣阅读笔记管理 tag:www.v2ex.com,2024-08-24:/t/1067486 2024-08-24T07:52:32Z 2024-08-24T07:52:32Z senlinmuvs member/senlinmuvs 做这个开源项目感觉目前一个人更新得太慢了,想起来突然有空才更新一下,就想找些感兴趣的人一起开发。感觉如果做得比较完善了会比其它同类软件好用。我自己一直在用这个就感觉比其它的好用多了。

地址在这: https://github.com/senlinmuvs/xxmoon

]]>
使用 Qt 做的软件界面太丑怎么办?有没有什么美工插件或者入门教程 tag:www.v2ex.com,2024-08-19:/t/1066101 2024-08-19T05:53:22Z 2024-09-04T23:16:06Z 52txr member/52txr 感觉设计的好看其实是个艺术活,理工直男的审美真的尴尬!我想问问这个东西是可以学习的吗

]]>
有哪位大佬对修改 3DSlicer 或者开发插件有经验? tag:www.v2ex.com,2024-08-06:/t/1063036 2024-08-06T13:03:46Z 2024-08-06T14:31:00Z feixianghao member/feixianghao 3DSlicer 是基于 QT 开发,想学习一下如何给原版软件换皮。

]]>
如何正确安装 QT? tag:www.v2ex.com,2024-08-06:/t/1063032 2024-08-06T12:30:22Z 2024-08-06T12:30:22Z feixianghao member/feixianghao 最近要在 window11 电脑上装 QT ,但是从官网下载的在线安装安装包,装上之后似乎没有安装上 QT 。要编译的程序一直提示根据 Cmake 一直提示找不到 QT 。

]]>
请教 qt svg 打包后无法显示问题。 tag:www.v2ex.com,2024-07-23:/t/1059484 2024-07-23T08:44:07Z 2024-07-23T11:54:59Z brokensword2018 member/brokensword2018 使用 QIcon("test.svg")显示图标。 在自己机器上是可以正常显示的。打包后再其他机器上无法正常显示。已进行的操作。应该是有 svg 相关动态库没有正确加载,但是不清楚具体原因。

]]>
如何在 QT 中的多个级别的窗口之间传输消息 tag:www.v2ex.com,2024-07-09:/t/1055959 2024-07-09T07:02:19Z 2024-07-09T11:07:07Z h3xz member/h3xz 假设form_Bform_Cform_A下创建,然后form_Dform_C下创建。form_B如何从form_D获得信号?

我的想法是先将信号从form_D传递到form_C,然后再传递到form_A,最后form_A将信号传递到form_B。然而,这样会有很多与各种信号相关的连接,并且很难管理。 真诚地请教下是否有其他方法可以管理这么多信号。真诚地询问是否有更方便的方法来管理信号,将信号从form_D传输到form_B

]]>
关于 QT(C++)通过继承 QObject 的方法实现多线程,子线程调用失效。 tag:www.v2ex.com,2024-07-08:/t/1055575 2024-07-08T02:59:11Z 2024-07-08T06:36:40Z h3xz member/h3xz class MyThread : public QObject{ Q_OBJECT void work(){ qDebug()<<"MyThread::work() thread id: "<<QThread::currentThreadId()<<"\n"; } } MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { qDebug()<<"main thread id: "<<QThread::currentThreadId()<<"\n"; QThread* subThread = new QThread; MyThread* my_thread = new MyThread; my_thread->moveToThread(thread1); my_thread->start(); qDebug()<<"00000000"; my_thread->work(); connect(ui->pushButton, &QPushButton::clicked, my_thread, &MyThread::work); connect(ui->pushButton, &QPushButton::clicked, this, [=]{ qDebug()<<"11111111"; my_thread->work(); }); connect(ui->pushButton, &QPushButton::clicked, my_thread, [=]{ qDebug()<<"22222222"; my_thread->work(); }); }

程序执行结果:

main thread id: 0x1a70 00000000 MyThread::work1() thread id: 0x1a70 11111111 MyThread::work1() thread id: 0x1a70 MyThread::work1() thread id: 0x698 22222222 MyThread::work1() thread id: 0x698 

请问为何在主窗口中直接调用 my_thread 和
connect(ui->pushButton, &QPushButton::clicked, this, [=]{ my_thread->work(); });都是在主线程中执行,而其他两种调用方式就能正确在子线程中执行?

]]>
在 Qt 中控件同时使用智能指针和父子关系,会有二次删除风险吗? tag:www.v2ex.com,2024-07-05:/t/1055015 2024-07-05T02:04:50Z 2024-07-05T07:15:17Z WangLiCha member/WangLiCha 比如一个像下面这样定义的 QDialog 窗体:

#ifndef PLAYDIALOG_H #define PLAYDIALOG_H #include <memory> #include <QVBoxLayout> #include <QDialog> class QPushButton; class PlayDialog : public QDialog { Q_OBJECT public: explicit PlayDialog(QWidget* parent = nullptr); private: QVBoxLayout* m_layout; QPushButton* m_button1; std::shared_ptr<QPushButton> m_button2; QSharedPointer<QPushButton> m_button3; }; #endif // PLAYDIALOG_H 
#include "playdialog.h" #include <memory> #include <QDialog> #include <QLayout> #include <QPushButton> #include <QVBoxLayout> PlayDialog::PlayDialog(QWidget* parent) : QDialog(parent), m_layout(new QVBoxLayout(this)) { m_button1 = new QPushButton("BUTTON1", this); m_button2 = std::make_shared<QPushButton>("BUTTON2", this); m_button3 = QSharedPointer<QPushButton>::create("BUTTON3", this); m_layout->addWidget(m_button1); m_layout->addWidget(m_button2.get()); m_layout->addWidget(m_button3.get()); setLayout(m_layout); } 

其中的 QPushButton 都设置了 QDialog 窗体为父控件,m_button2m_button3分别用 C++原生和 Qt 的智能指针进行了包装。如果这个时候关掉父窗体,因为父子级关系三个按钮都会被释放,但是受智能指针管理的m_button2m_button3按理说也会被释放,这种时候会存在二次删除风险吗?是不是在 Qt 中不应该用智能指针管理设置了父子级关系的 QWidget 控件?还是说 Qt 封装过的 QSharedPointer 可以放心使用?

]]>
qt5 中文乱码问题怎么解决? tag:www.v2ex.com,2024-07-01:/t/1053998 2024-07-01T08:51:50Z 2024-07-01T08:54:52Z gegeligegeligo member/gegeligegeligo 源代码文件是 gbk 编码的,使用这个方法:setText("我是中文"),界面上会乱码显示。该怎么解决这个问题呢?

]]>
现在写 Qt 的主流 IDE 工具是什么? tag:www.v2ex.com,2024-04-24:/t/1035339 2024-04-24T09:09:42Z 2024-04-24T15:37:13Z WangLiCha member/WangLiCha 之前只在 C-Free 和 Arduino 上写过简单的 C++,现在因为有跨平台桌面开发需求所以要考察一下 Qt 。

本身 IDE 的话 Visual Studio 因为写过 C#熟悉一点,然后 JetBrains 家的 IDE 完全没有实际使用过。

想知道现在写 Qt 的主流 IDE 工具是什么?是用那个官方的 Qt Creator 还是用其他 IDE 工具开发体验好一点?

]]>
请问多线程之间是如何协调配合的? tag:www.v2ex.com,2024-03-15:/t/1023919 2024-03-15T03:53:17Z 2024-03-14T11:53:17Z maxssy member/maxssy
现在需求是按 btn1 后先查询 A 的状态, 如果是状态 a1 则调用 B 的 b1 操作如果是 a2 则调用 B 的 b2 操作, 这套流程需要重复多次且 b1 和 b2 是耗时十几秒的操作, 需要等到 b1 或 b2 完成后才继续下一次循环

现在的问题是主线程的循环中用 QTime+QCoreApplication::processEvents 的非阻塞等待时循环不会等待 b1 或 b2 跑完直接跳到下一循环, 只能用 sleep 硬阻塞
有啥好办法或最佳实践吗? ]]>
QSerialPort 如何实现同一个串口设备命令做出不同操作? tag:www.v2ex.com,2024-03-14:/t/1023580 2024-03-14T05:32:14Z 2024-03-13T13:32:14Z maxssy member/maxssy 场景 1: 窗口启动后自动调用接口, 收到 A 或 B 后显示在页面上
场景 2: 页面上的按钮 btn 按下后先调用查询接口, 然后如果返回 A 则执行 aa 函数如果返回 B 则执行 bb 函数

如果都写在 QSerialPort::readyRead 信号下处理则每次窗口启动都会自动执行场景 2 的动作. 有什么办法让程序在 btn 按下后才执行场景 2? ]]>
qt creator 插件开发问题请教 tag:www.v2ex.com,2024-03-07:/t/1021402 2024-03-07T04:07:16Z 2024-03-07T06:04:16Z takingadetour member/takingadetour 我想实现一个 qt creator 插件,能够从调试器读取指定的变量(比如一个元素更多的 vector),然后把变量值导出到文本文件,或者直接导入到 matlab 实例。

目前按照 qt creator 向导能够编译和加载简单的示例插件,但是尝试使用 Debugger 类的时候会出现编译错误,提示无法解析的外部符号。我尝试在 pro 文件中添加了对 debugger 的依赖,似乎没有什么效果。

我想问问有没有人做过类似的事,能否提供一些指点?关于插件开发我只找到 VCreateLogic 公司的一个文档,关于 creator 插件开发的官方文档没怎么找到?

]]>
求助一个读硬盘序列号的问题 tag:www.v2ex.com,2024-02-29:/t/1019515 2024-02-29T08:17:33Z 2024-02-29T08:23:53Z mirage13 member/mirage13 使用 wmic 读到的序列号是下面这种格式 wmic diskdrive where index=0 get serialnumber SerialNumber 0000_0000_0000_0000_8CE3_8E03_0080_77C3.

但是所有第三方软件读到都是 82OA12W5KMH5

请教有没有可以直接获取正确序列号的命令行,或可以带参数直接输出硬盘序列号的第三方工具?

]]>
关于 Qt6.6.0 无法设置程序图标的问题 tag:www.v2ex.com,2024-01-14:/t/1008622 2024-01-14T18:58:43Z 2024-01-22T05:18:52Z johnsmith2077 member/johnsmith2077 一开始用的 cmake ,按网上找的各种方法无法解决,换成 qmake ,还是一样报错。

仔细看报错内容,发现是 make 的过程中,windres 报错,最后在 stackoverflow 上找到临时解决方法: windres error

在生成的 makefile 中给 windres 添加--use-temp-file 选项

但是在临时生成的 makefile 中直接改毕竟不是长久之计,于是继续搜索,发现: qmake.conf

修改相应 qmake.conf 中的 QMAKE_RC 即可

比如在 win32-g++/qmake.conf 中添加一行:

QMAKE_RC += --use-temp-file 

至此,问题解决(没有尝试其他版本的 Qt ,不知道是不是版本相关问题)

]]>
求助,如何编译 openwrt 的时候加入 qt6 tag:www.v2ex.com,2023-12-15:/t/1000622 2023-12-15T03:25:39Z 2023-12-15T03:25:39Z kissdata member/kissdata 想在编译 openwrt 23.05 的时候编译最新的 qt6 源码,搜到的是 github Lankaster/qt5-openwrt ,我想直接照着上面换个版本号数字好像没用。

它这个文件 files/qmake.mk 用的是 qmake ,但是 qt6 本身使用的编译方法和 qt5 时候不一样了。有大佬会这个吗?(orz~~

]]>
为什么 Qt Creator 界面如此丑陋 tag:www.v2ex.com,2023-10-16:/t/982570 2023-10-16T13:19:14Z 2023-10-16T13:43:55Z nenseso member/nenseso 大家了解 Qt 和 qt-creator 的开源协议吗?基于它,可以写闭源商用的软件吗? tag:www.v2ex.com,2023-10-04:/t/978940 2023-10-04T14:51:12Z 2023-10-09T10:56:05Z lyping member/lyping 大概想写一个自动化生成代码和配置代码的工具。底层想基于 Qt,但减少代码的编辑,根据配置,自动创建代码并编译。

不知道能不能闭源商用。

]]>
求助,使用 CLion 开发 Qt,创建了 UI 类不会使用 tag:www.v2ex.com,2023-09-26:/t/977333 2023-09-26T09:36:17Z 2023-10-03T02:50:11Z DaTouJun member/DaTouJun 但是里面的拖拽,不会影响 h 和 cpp 的内容,不会更改最后 UI 的效果是为什么

]]>
mac 下的 Qt/C++应用,通过 url scheme 唤起时,如何获取到唤起的链接? tag:www.v2ex.com,2023-06-27:/t/951946 2023-06-27T01:38:40Z 2023-06-27T01:38:40Z dinjufen member/dinjufen 如题,windows 下通过浏览器唤起应用(如 test://a=xxx ),可以直接通过 main 函数的 argv 获取到这个唤起链接,但是 mac 下通过这种方式获取不到。看了 mac 的开发文档,都是 swift 的

]]>
Qt 中的 `QFontMetrics.boundingRect()` 算出来的文本长度有时候会不对,应该如何处理。 tag:www.v2ex.com,2023-06-09:/t/947341 2023-06-09T07:58:39Z 2023-06-16T07:21:00Z amazingwujun member/amazingwujun 求助: Qt 开发 android 程序遇到编译不通过 tag:www.v2ex.com,2023-05-21:/t/941716 2023-05-21T09:19:24Z 2023-05-21T05:19:24Z luyaocode member/luyaocode armeabi-v7a\qrc_qml.cpp: ..\qtwebquick\qml.qrc \
..\..\..\devs\Qt\5.14.2\android\bin\rcc.exe \
Active\ code\ page:\ 65001 \
..\qtwebquick\main.qml
D:\devs\Qt\5.14.2\android\bin\rcc.exe -name qml ..\qtwebquick\qml.qrc -o armeabi-v7a\qrc_qml.cpp

报错信息:
D:\codes\Qt\build-qtwebquick-Android_for_armeabi_v7a_arm64_v8a_x86_x86_64_Clang_Qt_5_14_2_for_Android-Debug\Makefile:127: error: multiple target patterns. Stop. ]]>
Qt 里的 Qprocess 怎么完全 kill 一个 mpi 程序 tag:www.v2ex.com,2023-02-26:/t/919238 2023-02-26T03:47:09Z 2023-02-26T05:12:41Z SJ2050cn member/SJ2050cn 最近我在写一个 pyqt 的程序,里面需要调用外部的一个 mpi 程序进行计算。我看网上都用 Qprocess 起外部程序,我试了一下,确实可以直接跑外部的 mpi 程序,但当我想中途 kill 这个 mpi 程序的时候,发现了一个问题,就是 Qprocess 自己虽然被杀死了,但由它起的 mpi 进程仍在后台跑。各位大佬知道如何完全 kill 由 Qprocess 起的 mpi 程序吗?

附上我的 pyqt 代码片段:

 process = QProcess() process.setWorkingDirectory(f"{workDir}") command = f"mpiexec -n {mpiNum} {SG_INTEXE}" process.start(command) while True: if self.stopOneFlag: process.kill() process.waitForFinished(-1) process = None self.logChange.emit(f"{name}stop !\n") logging.info(f"{name}stop !") break 
]]>
请教一个 qt graphicsview 优化问题 tag:www.v2ex.com,2023-02-12:/t/915372 2023-02-12T06:43:14Z 2023-02-12T06:42:14Z Corey0606 member/Corey0606 求指点 QtWidget 程序如何改善 Wayland 下的兼容性? tag:www.v2ex.com,2023-02-10:/t/914764 2023-02-10T01:05:04Z 2023-02-10T01:50:30Z Arctic2021 member/Arctic2021 我用 QtWidget 写了一个 C++ 程序,在 X11 下一切正常,在 Wayland 下亦可运行。美中不足之处,它在 Wayland 环境下的消息弹窗等子窗口位置,不是如 X11 下般铺在主程序上层,而是偏移到很远的地方。

熟悉 Qt 的大佬指点一下,如何改善 QtWidget 的 Wayland 兼容性。

pic

]]>
Qt Quick 应用拖动的时候卡顿 tag:www.v2ex.com,2023-01-03:/t/906201 2023-01-03T03:07:19Z 2023-01-03T03:06:19Z SolarAA member/SolarAA 刚开始学习 Qt ,想问一下为什么 Qt Quick 应用在拖动的时候没有 QWidget 应用流畅?使用官方提供的几个 Quick 例子,Windows 11 。

]]>
pro 文件中如何设置编译完后能运行指定的批处理文件? tag:www.v2ex.com,2022-08-11:/t/872235 2022-08-11T09:42:14Z 2022-08-11T09:42:14Z icemanpro member/icemanpro 现想在编译完 exe 文件后,再运行指定的批处理文件,如何在 pro 文件设置

]]>
请教关于 Qt 事件的传播顺序的问题 tag:www.v2ex.com,2022-08-09:/t/871791 2022-08-09T15:01:18Z 2022-08-08T15:01:18Z wisefree member/wisefree 假设有一个顶层窗口 A ,A 下有 B 窗口,B 窗口下有 C 窗口,事件发生时,事件的传播顺序是不是 C->B->A 呢?为什么?

]]>
PyQt 交流群成立了,欢迎各位大佬加入 tag:www.v2ex.com,2022-07-04:/t/863936 2022-07-04T04:48:38Z 2022-07-08T07:38:24Z codeli member/codeli http://imgur.com/a/XgQYSIB ]]> 现在还建议提前学习 Qt 框架吗? tag:www.v2ex.com,2022-05-17:/t/853582 2022-05-17T15:58:06Z 2022-05-17T16:57:06Z sethome member/sethome 现在学 Qt 算不算 49 入国军。。 不过搞了那么久嵌入式开发,现在也只会 C/C++ HTML 和 python 也就是三脚猫功夫水平。。其他的也不会了

]]>
正式环境下,如何分析 qt 程序的内存泄露? tag:www.v2ex.com,2022-04-24:/t/848908 2022-04-24T03:33:22Z 2022-04-24T04:33:17Z icemanpro member/icemanpro 现在有一个 qt mingw 编译的 release 版的程序,在客户那里运行内存占用太大了。有没有什么办法可以分析是程序中哪里内存有泄露? 程序是在 windows 下运行的。

]]>
求教 : Qt 两个 QWidget 叠加显示问题 tag:www.v2ex.com,2022-04-22:/t/848601 2022-04-22T08:08:14Z 2022-04-22T20:05:01Z Trinity888 member/Trinity888 界面中两个 QWidget 如何叠加显示。 界面上方是一个 QWidget 按钮,下面显示一个 Qwidget 控件; 如何设置一个在另一个的上方显示。

]]>
在自学 qt,因为习惯问题用的是 clion,标准 qt 工程没问题,但是想写 qt 插件, cmake 打出来的 dll 文件宿主不识别,请问有用 clion 开发过 qt6 插件的朋友么,求指导或者资料帮助 tag:www.v2ex.com,2022-03-31:/t/844206 2022-03-31T17:05:23Z 2022-04-03T04:40:04Z soar0712 member/soar0712 QUdpSocket bind 特定的本地 ip,无法发送数据? tag:www.v2ex.com,2022-03-05:/t/838240 2022-03-05T12:01:59Z 2022-03-05T12:01:59Z wisefree member/wisefree windows 10 Qt 5.12.10

创建一个 QUdpSocket ,bind 一个本地的 IP 如 192.168.1.200 ,结果用 writeDatagram 无法发送数据。

  1. 不进行 bind ,writeDatagram 可以发送数据
  2. 不绑定特定 ip ,bind QHostAddress::AnyIPv4 ,可以发送数据

大家遇到过这个问题吗?

]]>
QT 界面如何实现随电脑百分比放大、缩小 tag:www.v2ex.com,2022-01-13:/t/828091 2022-01-13T10:28:56Z 2022-07-22T17:53:47Z Trinity888 member/Trinity888 大家有谁了解的吗? 例如当前桌面是某分辨率,百比分:默认 100%,当调整 100%--300%过程中,界面也随之放大; 相反 300%--100%时,界面也随之变小

]]>
希望找一位精通 QT 者:合作一短期项目,预计一月内完成。 tag:www.v2ex.com,2021-12-06:/t/820316 2021-12-06T04:31:34Z 2021-12-06T04:31:34Z Trinity888 member/Trinity888 具体项目详情加 v:Olaf372769 ]]> 不太理解 Qt 多线程 Wait Conditions Example tag:www.v2ex.com,2021-11-17:/t/816138 2021-11-17T13:23:08Z 2021-11-17T13:23:08Z wisefree member/wisefree
  • char buffer[BufferSize]是全局变量
  • buffer[i % BufferSize] = "ACGT"[QRandomGenerator::global()->bounded(4)]; // 写入数据 fprintf(stderr, "%c", buffer[i % BufferSize]); // 读取数据 

    这个难道是线程安全的吗?

    qt 自带代码如下:

     #include <QtCore> #include <stdio.h> #include <stdlib.h> const int DataSize = 100000; const int BufferSize = 8192; char buffer[BufferSize]; QWaitCondition bufferNotEmpty; QWaitCondition bufferNotFull; QMutex mutex; int numUsedBytes = 0; class Producer : public QThread { public: Producer(QObject *parent = NULL) : QThread(parent) { } void run() override { for (int i = 0; i < DataSize; ++i) { mutex.lock(); if (numUsedBytes == BufferSize) bufferNotFull.wait(&mutex); mutex.unlock(); buffer[i % BufferSize] = "ACGT"[QRandomGenerator::global()->bounded(4)]; mutex.lock(); ++numUsedBytes; bufferNotEmpty.wakeAll(); mutex.unlock(); } } }; class Consumer : public QThread { Q_OBJECT public: Consumer(QObject *parent = NULL) : QThread(parent) { } void run() override { for (int i = 0; i < DataSize; ++i) { mutex.lock(); if (numUsedBytes == 0) bufferNotEmpty.wait(&mutex); mutex.unlock(); fprintf(stderr, "%c", buffer[i % BufferSize]); mutex.lock(); --numUsedBytes; bufferNotFull.wakeAll(); mutex.unlock(); } fprintf(stderr, "\n"); } signals: void stringConsumed(const QString &text); }; int main(int argc, char *argv[]) { QCoreApplication app(argc, argv); Producer producer; Consumer consumer; producer.start(); consumer.start(); producer.wait(); consumer.wait(); return 0; } 
    ]]>
    为什么 ListView 没有随窗口大小自适应缩放? tag:www.v2ex.com,2021-11-08:/t/813932 2021-11-08T09:10:29Z 2021-11-08T09:09:29Z anzu member/anzu 截图:
    https://imgur.com/a/EoN3wsX ]]>
    可以让 qmake 多项目并行编译吗? tag:www.v2ex.com,2021-09-14:/t/801706 2021-09-14T03:01:00Z 2021-09-12T07:38:32Z gainsurier member/gainsurier pro 项目文件中,如何判断编译器? tag:www.v2ex.com,2021-07-23:/t/791224 2021-07-23T01:50:37Z 2021-07-23T01:50:37Z icemanpro member/icemanpro ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86