草庐IT

c++ - Qt/Qml 和方法重载

在从Qml中调用重载的C++方法并试图了解其背后的原因时,刚刚遇到Qt框架的奇怪行为。假设我有一个QList-like具有以下方法的类:...Q_SLOTvoidappend(constQVariant&item);Q_SLOTvoidappend(constQVariantList&items);Q_SLOTvoidinsert(intindex,constQVariant&item);Q_SLOTvoidinsert(intindex,constQVariantList&items);...Qml:onclicked:{varitemCount=myListObject.size(

android - 从 Qt Creator 附加到 Android 进程

我使用QtCreator开发了一个Android动态库,也就是一个.so文件。这个.so文件随后被Android应用程序使用,但它是在Eclipse中开发的。我需要调试我的native代码,但由于它是一个库,我无法从QtCreator启动应用程序,我必须附加到已经运行的进程。现在,如果它是一个桌面应用程序,我会使用Debug->StartDebugging->AttachtoRunningApplication,但是我如何附加到一个Android进程,它会运行在模拟器还是连接的手机,哪个更像是远程调试?我认为我应该使用Debug->StartDebugging->AttachtoRun

c++ - Qt 有没有类似的替代品?

我喜欢Qt的理念,但我不仅将其用于开源开发,还用于闭源开发。这不是真正的问题,因为我只是根据LGPL许可并分发所需的DLL。不幸的是,我遇到了一个问题。编译后的静态链接可执行文件为4.36MB。不是太寒酸。编译后的动态链接可执行文件为250KB,但我还必须在安装时包含近35MB的DLL文件。这真的很俗气,无论我怎么看,我都无法证明尺寸使用率是合理的。这个,我根本买不起商业许可证。谈论价格欺诈启动开发人员。不管怎样,你看到我的问题了。我的程序只执行一个功能。35MB太大了。不幸的是,我听说过有关WxWidgets维护不善的恐怖故事,但考虑到我的情况,恐怕我将被迫使用它。任何人都可以向我推

c++ - 在项目中使用 QT 单元测试 - 冲突的 main(...) 函数

我踏上了使用单元测试开发我的应用程序的崇高道路,但事实证明这是一条陡峭而崎岖的道路。我正在用Qt开发一个应用程序,因此想到了他们的QTestLib框架。现在,我了解了如何进行单元测试,但我似乎无法弄清楚如何将单元测试合并到项目中。假设我有一个控制台应用程序,它只有一个main.cpp以及一个cpp和h文件,用于我想开发的类,比如MyClass。我想正确的做法是创建一个相应的测试类MyClassTest及其h和cpp文件。但是我应该把它放在同一个项目中吗?或者更确切地说,为单元测试创​​建一个单独的项目,该项目将可以访问“主”项目中的文件(不确定我该怎么做)?如果主应用程序和测试都在同一

c++ - 使用 Qt 将应用程序的功能拆分为插件

就像标题所说的那样,我想将我的Qt应用程序的某些部分拆分成插件,所以我可以在运行时添加新功能。理想情况下,插件将单独编译并放入插件的专用路径;当应用程序启动时,安装的扩展会自动已加载,或者可以随时根据用户请求重新加载。我应该提一下,我想放入插件的对象不是QObject,但如果它可以解决方案更简单,它们从QObject继承是可以接受的。我该怎么做?我想要最简单的可移植解决方案,不需要任何其他东西比Qt(没有外部依赖)。 最佳答案 虽然我回答了我自己的问题,但我更想听听别人的问题!首先,您的插件之间需要有一个通用接口(interface

c++ - 通过C++/Qt生成word文档(.doc/.odt)

我正在使用Qt4.5.3和WindowsXP。我需要我的应用程序生成包含正在使用和生成的信息的文档。正在使用的信息将只是字符串(QString更具体),正在生成的信息也将是字符串和图像。我希望文档成为MSword文档(.doc)或者可以是开放文档格式(.odt)我还希望文档的格式为字体、图像、数据表、一些背景颜色和所有。我已经使用QTextDocument、QTextCursor和QPrinter创建了PDF文件。但是,当我尝试为odt应用相同的QTextDocument时,我最终遇到了格式错误。有没有办法使用任何其他使用C++的库生成此类文档?你们如何使用C++生成此类文档(.odt

Qt实战---多线程的串口接收类QSerialPort

一、典型的问题:在我们的多线程编程中,一般主线程负责界面的刷新显示,而子线程负责一些耗时的操作,例如当我们使用QSerialPort的时候,我们希望QSerialPort的读写操作在子线程中进行。QObject:Cannotcreatechildrenforaparentthatisinadifferentthread.那么如果在主线程中创建QSerialPort对象,通过指针的形式将QSerialPort传入到了子线程中,在子线程的函数内使用QSerialPort指针操作读写函数,就会出现上面的错误提示!原因:在主线程中创建了QSerialPort对象在子线程中调用,或者在子线程中创建然后在

c++ - 使用 Qt 从 stdin 异步读取

我想用Qt从stdin异步读取。我不想使用单独的线程或必须设置计时器来定期检查文件描述符是否有数据。我怎样才能做到这一点? 最佳答案 如果您阅读Qt文档,它会说您不能这样做,因为它不可移植。假设您可以控制另一端,为什么不使用应该工作的TCP套接字。最坏的情况是您可以申请代理。 关于c++-使用Qt从stdin异步读取,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/9741259/

TCP客户端&服务端QT开发

TCP客户端&服务端QT开发TCPClient1.Widget类写UI界面,创建socket对象Widget::Widget(QWidget*parent):QWidget(parent),ui(newUi::Widget){ui->setupUi(this);socket=newQTcpSocket;//创建socket对象}2.取消按键槽函数//直接关闭窗口即可voidWidget::on_cancelButton_clicked(){this->close();}3.连接按键槽函数3.1获取ip和port//获取ip地址和端口号QStringip=ui->ipLineEdit->text

c++ - Qt setGeometry : Unable to set geometry

为什么?setGeometry:Unabletosetgeometry22x22+320+145onQWidgetWindow/'WidgetClassWindow'.Resultinggeometry:116x22+320+145(frame:8,30,8,8,custommargin:0,0,0,0,minimumsize:22x22,maximumsize:16777215x16777215).项目是:项目.proQT+=coreguigreaterThan(QT_MAJOR_VERSION,4):QT+=widgetsTARGET=untitled5TEMPLATE=appSO