草庐IT

c++ - 使用 Qt 4 在 C++ 中设计模式

我一直在寻找有关qt设计模式的教程或书籍,到目前为止,我找到了一本书,“IntroductiontoDesignPatternsinC++withQt4”。有人读过这本书吗?另外,我在哪里可以读到关于在qt中实现的设计模式? 最佳答案 IntroductiontoDesignPatternsinC++withQt4使用Qt4.1来演示其概念。自Qt4.1以来发生了如此多的变化,我建议首先学习设计模式,然后再学习Qt(单独)。了解设计模式后,您可以浏览Qt源代码并能够自己识别这些模式。Designpatterns-Elementsof

c++ - QT特别评论//://[num] etc

qt示例文件夹中的特殊注释是什么意思?我知道“//:”这是一个注释,如果下一行包含tr(""),翻译程序将被带到这里。//[]之间的代码似乎被带到了生成的html文档中。是否有完整描述特殊评论的文档? 最佳答案 Qt使用DoxygenSpecialCommands在它的代码注释中。[好吧,准确地说,Doxygen扩展了Qt的注释特殊命令。]特殊命令用于控制在代码上运行时文档的生成。维护Qt的Trolls有他们自己的工具,用于从代码生成文档。Doxygen旨在为我们这些凡人提供我们可以使用的工具。您可以使用Doxygen(我假设是Qt

c++ - QT应用---WIFI连接

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭11年前。QT有检测无线网络的API吗?如果没有,是否有任何其他跨平台检测无线网络的方法?

c++ - 显示以每个方 block 为对象的棋盘 - C++ QT

我是Qt的新手,但不是C++的新手。我正在尝试创建一个棋盘/棋盘,其中每个方block都是一个对象。我想弄清楚的是如何让每个方形对象成为我声明的板对象的一部分并将其显示在屏幕上。我可以在主类中使用MyWidget.show()在屏幕上显示小部件。但我想做一些类似Board.show()的事情,并显示属于该类(具有高度、宽度和颜色)的所有方形对象。使用代码我尝试没有任何显示,尽管我能够显示一个不在棋盘类中的正方形。主要.cpp#include#include"square.h"#include"board.h"intmain(intargc,char*argv[]){QApplicati

c++ - Qt QIODevice::write/QTcpSocket::write 和写入的字节

我们对QIODevice::write的一般行为和具体的QTcpSocket实现感到非常困惑。有一个similarquestion已经,但答案并不令人满意。主要的混淆源于分别提到的bytesWritten信号和waitForBytesWritten方法。这两个似乎表示从QIODevice使用的缓冲区写入实际底层设备的字节(必须有这样的缓冲区,否则该方法没有多大意义)。那么问题是,如果QIODevice::write返回的数字与这个数字相对应,或者如果在那种情况下它表示存储的字节数内部缓冲区,而不是写入底层设备的字节。如果返回的数字指示写入内部缓冲区的字节数,我们将需要采用如下模式来确保

c++ - 无法将 char* 转换为 WCHAR* [qt/c++]

我正在开发QT应用程序,我需要包含纯C代码。当我在code::blocks中编译这段代码时,它是成功的,可能是一个警告,但是当我尝试在QTcreator中编译它时,我得到了这4个错误。cannotconvert'char*'to'WCHAR*'forargument'1'to'UINTGetSystemDirectoryW(WCHAR*,UINT)'cannotconvert'char*'to'constWCHAR*'forargument'1'to'HINSTANCE__*LoadLibraryW(constWCHAR*)'cannotconvert'char*'to'WCHAR*'

C++/Qt Q_OBJECT宏导致错误

我刚刚开始使用Qt框架进行编程。下面是一个非常简单的程序:#include#includeclassMyClass:publicQObject{Q_OBJECTpublic:MyClass(){}};intmain(intargc,char*argv[]){QCoreApplicationa(argc,argv);MyClass*c=newMyClass();returna.exec();}但是当我尝试编译和运行它时收到以下错误:在函数MyClass中:对MyClass的vtable的undefinedreference但是当我删除QObject宏时,一切正常。请注意,该类定义在与主函

c++ - Qt Widget - 如何只捕获几个键盘键

我知道使用grabKeyboard()我的小部件即使没有获得焦点也能够捕获每个键盘事件,但是如果我只想捕获三个或四个键怎么办?我尝试使用事件过滤器https://doc.qt.io/qt-5/qobject.html#installEventFilter但这没有用(也许是因为我是这样安装的?)classMyWidget:publicQGLWidget{...protected:booleventFilter(QObject*o,QEvent*e);};boolMyWidget::eventFilter(QObject*o,QEvent*e){if(e->type()==QEvent::

c++ - Qt - 如何在不使用插槽的情况下检测自定义事件循环中的关闭窗口

我正在开发一个基于OpenGL的游戏,使用QGLWidget作为前端。但由于所有不必要的开销(加上必须分发繁重的QT库!)我计划迁移到GLUT,并且在大跃进之前用更多标准的替代品替换“Qt-stuff”。为了替换控制帧速率和fps计时器的QTimer,我试图将这些函数嵌入到一个简单的循环中,该循环替换了app.exec()调用,如下所示://main.cpp#include#include#include"mainwindow.h"intmain(intargc,char*argv[]){QApplicationapp(argc,argv);MainWindowmainWin;//on

c++ - 当我的项目在 Visual Studio 和 Qt Creator 中构建时,Q_ASSERT 具有不同的行为

这似乎是一个错误,因为在QtCreator上,Q_ASSERT(false)导致我的应用程序退出,即使文档说它应该允许您中断断言:OnWindows,fordebugbuilds,thisfunctionwillreporta_CRT_ERRORenablingyoutoconnectadebuggertotheapplication.在QtCreator上:当在QtCreator+MinGW中编译我的项目时,代码Q_ASSERT(false);导致程序显示此消息(下面的屏幕截图),之后应用程序退出:ThisapplicationhasrequestedtheRuntimetoterm