问题标签 [moc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 信号和槽是语法糖还是更多?
我正在学习 Qt,并且对信号槽模式很感兴趣。我的问题是,信号和插槽只是事件侦听器和处理程序的语法糖,还是后台发生的事情具有不同的性质?如果是后者,根本区别是什么?
visual-studio - 为什么使用 qmake 生成 Visual Studio 项目时忽略我的 MOC_DIR
我正在使用 Qt 5.3 生成 Visual Studio 2013 项目qmake
。在我的.pro
文件中,我有以下行:
如果 I message($$MOC_DIR)
,则路径正确形成。但是,当我在 VS 中构建时,moc_<CLASS>.cpp
文件不会在该位置生成,而是最终与.pro
. 我在编译期间收到以下警告:
两个或多个名称为 的文件
moc_<CLASS>.cpp
将产生输出到同一位置
这并不奇怪,因为如果我查看生成的内容.vcxproj
,我会看到以下内容(不相关的标签/文本已省略...
):
为什么我的习惯MOC_DIR
被忽略了?
qt - 有什么区别.moc 和 moc_.cpp
我的大多数课程都会生成一个moc_<CLASS>.cpp
文件。为什么有些类生成<CLASS>.moc
文件而不是/以及?
qt - VS2008 中的 Qt 项目总是重建
我有一个使用 Qt 插件在 Visual Studio 2008 中运行的 Qt5.3 项目。每次我运行该项目时,它都会从头开始构建自己,而不会在运行之间进行任何更改。
我使用 VS 向导生成了项目,所以我没有添加任何自定义步骤。有任何想法吗 ?
qt - Qt、Qbs:自动生成moc_Filename.cpp
所以我有一个 Q_OBJECT 标记类,它需要预先生成的 .moc 才能使用。
在我的 .qbs 文件中,我有一个CppApplication
项目;这似乎是错误的项目类型,因为 qbs 没有调用moc ClassName.cpp
为我生成 moc。应该使用什么来代替/调整?
-
所以我知道 Qt.core 依赖项,但它不适用于我安装的 Qt 残缺;当我试图修复它时,这些事实出现了:
- 需要检测 Qt 工具链 (
qbs-setup-qt
) 并调用qbs-config-ui
- Qbs 确实将构建规则存储在 core.qbs 中,通过 Qt/core 依赖项链接。
- 可以将构建规则复制/粘贴到我自己的 .qbs 文件中并避免外部依赖;我认为这是在真正瘫痪的构建系统上部署代码的肮脏黑客(现在我对 Gentoo 上的 Qt 支持有了一个词)。
qt - 样式表应用于 QGridLayout 中的单元格而不是父容器
我继承了 QWidget 来创建一个名为(比如说..)TaskBox 的类。
我已将 QGridLayout 应用到我的 TaskBox。
布局由几个 QLabels 组成。
我通过为其设置样式表来更改任务框的背景颜色。
现在看起来像这样:
这就是我想要的,我很满意。
问题是,我想将 Q_OBJECT 宏添加到 TaskBox 类。(因为我需要使用信号和插槽)
添加 Q_OBJECT 宏后,我的 TaskBox 对象变成这样:
看起来样式表在 QGridLayout 中被分解为单元格。
这是我的任务框类:
我不明白发生了什么事。
感谢您的任何帮助!
c++ - 将 AUTOMOC 添加到 cmake 文件时出现 WinSock 问题
我在编写 cmake 文件时遇到问题。我有一个同时使用 Qt 和 WinSock2 的项目。但是当我将 set(CMAKE_AUTOMOC ON) 添加到 CMake 代码时,它给了我这些错误:
错误 4 错误 C2011: 'sockaddr' : 'struct' 类型重新定义 C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\ws2def.h 212 错误 5 错误 C2059: 语法错误: '常量' C :\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\ws2def.h 390 错误 6 错误 C3805:'常量':意外令牌,应为 '}' 或 ',' C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\ws2def.h 390 ...
我的cmake文件如下:
c++ - 如何创建 Qt 自定义基类
我想main window
为我的应用程序创建一个自定义,我想将它与Qt Creator
. 当您创建一个新的时,Qt Widgets Application
您可以选择从或继承。我想在那里添加我自己的小部件:QWidget
QMainWindow
QDialog
.ui
当我从下拉列表中选择我的自定义小部件时,我希望生成我的自定义表单。这可能吗?如果是,如何?
Qt Designer Form
或者也许可以在创建新表单时向对话框添加自定义模板小部件?我说的是这个:
问候!
qt - 如何在 Qt 中找到信号槽关系?
我最近刚接触 Qt,但我必须理解和修改其他人的一个巨大的 Qt 项目。是否可以在不找到所有对应的connect()函数的情况下从源码中查看信号槽连接关系?我听说 MOC 文件将这些信息存储在某个地方,但我找不到它们。