问题标签 [qt4]

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.

0 投票
2 回答
1640 浏览

qt4 - Qt menuBar() 错误

我正在学习 Qt4 并完成他们的教程。

在本教程中:

http://doc.trolltech.com/4.5/mainwindows-menus-mainwindow-cpp.html

他们有以下代码:

这会导致编译器抛出此错误

有谁知道我该如何解决这个问题?

[编辑] 使用 g++ 添加了完整的错误消息

0 投票
2 回答
3016 浏览

eclipse - Eclipse 集成中的 Qt 设计器插件(自定义小部件)

我制作了自定义小部件插件,它在 Qt 设计器中被识别和可见,但 Qt 创建者和 Qt eclipse 集成没有显示它。

有谁知道如何解决这个问题?

0 投票
1 回答
909 浏览

windows - 在 Windows 上重命名 DLL

我正在使用 Visual Studio 2003 在 Windows 上构建应用程序。

我的应用程序链接到第 3 方库(Qt)。调用 libqtcore4.lib和 dll qtcore4.dll

我的应用程序是另一个基于 Qt 的应用程序的插件,它使用相同 qtcore4.dll 的不同版本。

不幸的是,我不能使用与主机应用程序相同版本的 Qt,所以我想如果我重命名我的 Qt 版本的 lib 和 DLL 是否可以工作,例如:

我猜qtcore4.lib是指里面的qtcore4.dll。所以我不确定这是否会起作用。

0 投票
2 回答
4273 浏览

c++ - Qt 中自定义小部件的自定义样式

有没有人有使用 Qt 中自定义样式的自定义小部件的经验?(我使用的是 Qt 4.5)

问题看起来像这样:

我想开发一些不完全基于现有绘图图元和子控件的自定义控件。由于整个应用程序应该是可换肤的,我想依赖自定义样式,也可能在样式表上。

我需要为这些新控件配置以下内容:

  • 其他指标
  • 额外的调色板条目
  • 其他样式选项

在互联网和文档上挖掘,我发现我需要从一个QStyle子类派生一个新的样式类,并覆盖波兰方法以添加新的调色板条目,以及drawControl(和其他绘制方法)为自定义控件绘制逻辑和定制零件。

我有两个困扰我的问题:

  1. 目前,已经在 Qt 中实现了针对不同样式的不同样式类。(例如QMotifStyleQWindowsStyle),每个都有不同的设置。通过继承,我需要为每种样式重新实现绘画和附加设置逻辑,以便正确集成所有这些样式。我还有其他选择吗?

  2. 我仍然对如何将样式表与这些自定义样式一起使用感到困惑。谁能指出我可以找到比 Qt 文档提供的信息更多信息的地方?(Qt 中的示例对我帮助不大)。

0 投票
8 回答
4050 浏览

c++ - C++ 中的线程问题

我在许多流行的论坛上问过这个问题,但没有具体的回应。我的应用程序使用串行通信与外部系统连接,每个系统都有自己的接口协议。从系统接收的数据显示在 Qt 4.2.1 中制作的 GUI 上。

应用程序的结构是这样的

  1. 当应用程序启动时,我们有一个登录页面,其中有四个模块可供选择。这是作为 maindisplay 类实现的。这四个模块中的每一个本身都是一个单独的类。这里涉及的模块是动作类,负责收集和显示来自各种系统的数据。

  2. 用户身份验证使他/她进入操作屏幕。动作屏幕类的构造函数执行,除了普通的初始化之外,它还启动单独的系统线程,这些线程被实现为单例。

每个系统协议都实现为以下形式的单例线程:

在实现文件 *.cpp 中:

运行函数的结构

在动作屏幕类中,我使用 sigaction 和 saio 定义了 InputSignalHandler。这是一个函数指针,一旦数据到达任何串行端口,它就会被激活。

它是一个全局函数(我们无法更改它,因为它特定于 Linux),它仅用于比较数据到达的串行端口的文件描述符和传感器系统的 fd,如果找到匹配项 WaitCondition.wakeOne在该线程上调用,它会等待并读取和处理数据。

在动作屏幕类中,各个线程以SensorProtocol::getInstance()->start().

每个系统的协议都有一个发送数据的帧速率。基于这一事实,在操作屏幕中,我们设置了更新计时器以在协议刷新率时超时。当这些计时器超时时,调用操作屏幕的 UpdateSensorProtocol() 函数

这会抓取一个传感器单例实例作为

对于单例实例的所有用途SensorProtocol::getInstance()都使用。鉴于上述情况,无论我做什么更改,我的协议之一都会挂起。

挂起发生在使用 UpdateSensorProtocol() 显示数据时,如果我在其中注释ShowSensorData()函数,UpdateSensorProtocol()它工作正常。但否则它会挂起并且 GUI 冻结。有什么建议么!

此外,由于主线程抓取了单例的运行实例,它真的是多线程的吗,因为我们本质上是在单例本身中更改 mUpdate,尽管是从动作屏幕开始的。

我对此感到困惑。

另外,有人可以建议我现在正在做什么的替代设计。

提前致谢

0 投票
2 回答
4647 浏览

qt4 - 在 Qt (Ubuntu) 中编译时出错

在 Ubuntu OS 中编译 Qt 4.5 中的示例程序时出现以下错误。

0 投票
2 回答
14787 浏览

c++ - 我应该如何使用带有布局和小部件的 QGraphicsScene

我正在 Qt4 中创建一些图形数据显示小部件,我很想使用它,为数据项QGraphicsScene创建s 等。QGraphicsItem

但是,我想添加一些控件层(例如滚动条、缩放+其他按钮 - 我想使其具有与例如 Google Maps 类似的样式,即数据将显示在整个小部件中,并且按钮将显示在它们的顶部)到小部件。所以我认为将它们添加到场景中可能是可行的(也许作为QGraphicsGroupItem将显示在数据上的 a 的孩子)。但是我希望它们在调整整个小部件的大小时移动和调整大小,所以我应该使用 aQGraphicsLayout来管理它们。但此时,我发现事情相当复杂。

问题是,当使用 时QGraphicsLayout,以下约束成立:

  1. QGraphicsWidget布局只能管理a
  2. QGraphicsLayout只能用于管理 a 的子级QGraphicsWidget

这意味着我必须将我的控件创建为QGraphicsWidgets,向数据小部件添加顶级QGraphicsWidget,并自己管理这个顶级小部件的大小。

所以我想问:

  1. 经典的方法(即,对所有控件使用普通的旧小部件,并且QGraphicsScene仅用于显示数据)不是更合理吗?

  2. 在这种情况下使用有什么好处QGraphicsScene(性能或简单性......)?

  3. 我应该如何QGraphicsScene利用它的优势?

0 投票
3 回答
2851 浏览

sql - QSqlTableModel 的问题——没有自动更新

在 Qt 4.4 中像这样设置表模型后:

内容显示正常,但无法编辑,错误:

0 投票
1 回答
943 浏览

c++ - 使用带有事件循环和 QSocketNotifiers 的线程的问题串行端口监视

我昨天问了这个问题,因为我没有收到任何数据,但奇怪的是,当我在析构函数中使用 wait 时,我开始收到来自QSocketNotifier. 剩下的问题是一样的。有人可以提出一些建议吗?我创建了一个示例应用程序,从中启动单独的线程来读取和处理来自串行端口的数据。QSocketNotifier用于检测串口是否有数据到达。exec()我在线程的运行函数中使用语句启动事件循环。但是,当套接字通知器工作后才运行应用程序时,永远不会生成串行端口激活的信号。而且一旦生成,生成速度非常快,不等于发送设备的帧率。

这是串行通信器线程的简短代码示例:

SerialPortWatchOne.cpp

注意:klass 是一个线程,是 GUI 线程的成员,在 GUI 线程 c'tor 中实例化。GUI 会定期使用来自 klass 线程的数据更新其小部件。

任何人都可以建议问题是什么?以前有人这样做过吗。

0 投票
1 回答
7399 浏览

linux - Linux 套接字与 Qt 4 中的 QTcpSockets 通信

我正在尝试在 Qt 程序和常规 linux 程序之间与 TCP 通信。我有一个现有的 linux 客户端服务器程序,我正在尝试用 Qt 应用程序替换服务器程序。这是linux客户端代码

这是qt代码

当我尝试同时运行它们时,我只得到“String =”而不是字符串输出。知道我做错了什么吗?