我正在开发一个使用Qt的应用程序。 我不知道哪个插槽对应于“用户点击窗口框的'X'(closures)”button的事件“即这个button: 如果没有这个插槽,任何人都可以build议我一些其他的方法,我可以启动一个function后,用户按下该closuresbutton。
如何在Qt中显示带有Yes / Nobutton的消息框,以及如何检查哪些button被按下? 即一个消息框,看起来像这样:
我在Qt中的GUI项目有很多“configuration页面”类,它们都直接从QWidgetinheritance。 最近,我意识到所有这些类共享2个公共时隙( loadSettings()和saveSettings() )。 对此,我有两个问题: 用这两个插槽编写一个中间基本抽象类(让它命名为BaseConfigurationPage )是否是有意义的虚拟纯方法? (每个可能的configuration页面将总是有这两个方法,所以我会说“是”) 在我做我的代码的重大变化之前(如果我必须):Qt是否支持虚拟纯插槽? 有什么我应该知道的? 这是一个描述一切的代码示例: class BaseConfigurationPage : public QWidget { // Some constructor and other methods, irrelevant here. public slots: virtual void loadSettings() = 0; virtual void saveSettings() = 0; }; class GeneralConfigurationPage : public BaseConfigurationPage { // Some constructor and other methods, irrelevant here. public slots: void […]
我在ubuntu有一个软件,需要我运行qmake来生成Makefile。 然而,运行qmake回馈这个错误, qmake: could not find a Qt installation of '' 我已经安装了我认为是所需的软件包, sudo apt-get install qt4-qmake sudo apt-get install qt5-qmake 但是错误没有消失。 任何帮助,将很乐意欣赏!
编辑:有些人开始把我的问题标记为重复。 不要忘记,当我问到这个问题时,存在许多类似的问题(参见下面的列表)。 但是, 这些答案都没有解决我的问题 。 经过长时间的search,我发现一个被所有用户指向缺less的lib忽略的注释 。 现在,许多个月后,评论已被改为一个答案。 但是,当我自己回答这个问题时,我打算直接提供解决scheme来帮助别人。 这不应该被遗忘,到目前为止,我的回答帮助了很多人。 所以我的问题绝对不是重复的。 顺便说一句:在顶部提供的链接内接受的答案并不能解决问题 ! 是的,我使用了search: 无法加载平台插件“窗口”。 可用的平台是:错误 从Visual Studio qwindows.dll错误部署Qt C ++应用程序 未能加载平台插件“窗口”可用的平台是:Windows,最小 但是,在我的情况下,问题仍然存在。 我在Visual Studio 2012中使用Qt 5.1.1,并使用Qt Creator 2.8.1在Windows 7上开发了我的应用程序。 应用程序以“Release”模式编译,如果直接使用Qt Creator启动,则可以执行。 但是,从“释放” – 文件夹开始,我得到以下消息: 此应用程序无法启动,因为它无法find或加载Qt平台插件“窗口”。 可用的平台插件是:最小化,屏幕外,窗口。 文件夹结构如下所示: release + gui.exe + icudt51.dll + icuin51.dll + icuuc51.dll + libGLESv2.dll + Qt5Core.dll + Qt5Gui.dll + Qt5Widgets.dll […]
我认为在模型/视图控件Qt中使用的术语是有缺陷的。 在他们的解释页面上,他们说,他们通过合并View和Controller将MVC简化为MV,他们给出了以下图片: 不过我觉得,他们误称了对象的angular色,我认为, 他们称之为“合并控制器视图”实际上只是一个视图。 他们所称的模型实际上只是控制器。 如果你真的想要一个模型,那么它将会是“数据”的地方。 我正在谈论通常和理智的方式,你会在你的应用程序中使用Qt模型/视图组件。 原因如下: 这是典型的Qt组件,按原样使用,而不添加任何特定于您的对象的控制器逻辑) 这几乎不是模型,只是因为你应该实现像rowCount,columnCount,数据等几个Qt方法,这与你的模型没有任何关系。 实际上在控制器中有典型的模型方法。 当然,你可以在这里实现控制器和模型逻辑,但首先它将是非常糟糕的代码devise,其次,你会合并控制器和模型而不是控制器和视图,因为他们的状态。 如理由2所述。如果你想分离模型逻辑,它肯定不是图片上的蓝色框,而是虚线的“数据”框(当然与真实的数据通信)。 Qt在术语上是错误的,还是只有我不明白? (顺便说一句,之所以不是学术问题,是因为我已经开始在命名之后编写我的项目了,我很快就发现,代码显然是不正确的不要试图把模型逻辑放在他们所称的模型中)
我对Qt相当陌生,想知道一些基本的内存pipe理和对象的生活。 我什么时候需要删除和/或销毁我的对象? 这是否自动处理? 在下面的例子中,我创build了哪些对象,我需要删除? 当myClass被销毁时,实例variablesmyOtherClass会发生什么? 如果我不删除(或销毁)我的对象,会发生什么? 这会成为记忆问题吗? MyClass.h class MyClass { public: MyClass(); ~MyClass(); MyOtherClass *myOtherClass; }; MyClass.cpp MyClass::MyClass() { myOtherClass = new MyOtherClass(); MyOtherClass myOtherClass2; QString myString = "Hello"; } 正如你可以看到这是一个新手很容易的东西,但我在哪里可以轻松地了解这个?
所以我意识到,有各种各样的职位,包括对这些,但我很难理解他们如何融合在一起。 请解释以下各项用法以及它们如何相互关联: 谷氨酸 GLEW 充斥 SDL QT openGL的 WebGL的
我想将我的Qt项目分成几个目录,因为它的规模相当大。 但是,当我点击浏览QtCreator,没有“添加目录”,没有这样的事情在“添加新的”。 这可以以某种方式完成吗?
我应该如何退出一个Qt程序,例如,当加载数据文件,并发现文件损坏,用户需要退出这个应用程序或重新启动数据文件? 我是不是该: 通话exit(EXIT_FAILURE) 调用QApplication::quit() 调用QCoreApplication::quit() (2)和(3)之间的区别?