问题标签 [qwidget]

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 投票
1 回答
1523 浏览

c++ - 你将如何从 Qt 中另一个文件中的函数访问小部件?

我正在开发一个项目,我一开始是在没有 GUI 的情况下制作它,但现在我将它移植到 Qt,但我遇到了问题。

我在一个单独的文件中有我的“旧”实现,我尝试从中访问 MainWindow 小部件,以便输出到 QTextBrowser,但我无法这样做。

在 mainwindow.cpp 我有这个:

在 mainwindow.h 中:

在 simple_mode.cpp 中:

但是,这不会将“WORKS”附加到文本浏览器,这是我需要的,我认为它将它添加到与主窗口不同的另一个文本浏览器实例。

编辑:我想做的是将一行文本直接从 simple_mode.cpp 附加到文本浏览器。顺便说一句,simple_mode 是在没有任何 Qt 帮助的情况下编写的,这就是我使用 std 字符串的原因,目前 textbrowser 小部件充当虚拟终端输出屏幕,而不是像以前那样使用 printf,我想将行附加到 textbrowser . 但是我已经找到了方法,我现在不需要这个。

我需要帮助

0 投票
1 回答
605 浏览

qt - Qt:捕获和传递信号的最佳机制

我有一个类扩展QWidget类,这个类使用 QtDesigner 生成的 Ui 类。如下所示:

现在让我们假设里面有一个QPushButton * pushButton字段Ui::MyUi。此小部件的 UI 没有复杂的业务逻辑。

现在要求无论何时pushButton单击此小部件都应该发出一个信号(让我们称之为它pushButtonClicked()。现在我可以想象实现这一点的唯一方法是:

  1. 将对象的clicked()信号连接pushButton到本地插槽并pushButtonClicked()从那里发出信号。

  2. 安装MyWidget为 mouseEventFilterpushButton并在里面处理它MyWidget::mouseClickedEvent

还有其他选择吗?就像以某种方式让 Qt 框架使用 'MyWidget::pushButtonClicked()' 而不是pushButton->clicked()

在项目中,我有很多这样的场景,其中需要从包装类(如 )中传递此类信号,这些类MyWidget通过聚合或继承来包装/抽象 UI。一般来说,这被认为是更好设计的最佳方法,尤其是代码重用。当项目处于初期阶段并且不知道将来哪些 UI 可能需要复杂的业务逻辑时。

请注意,扩展 QPushButton 不是一种选择。

0 投票
3 回答
12445 浏览

qt - 在 QListView 的 QWidgetDelegate 的 paint() 方法中渲染 QWidget

我在QListView. 我目前有一个QListView显示我的自定义模型,称为PlayQueue基于QAbstractListModel.

这适用于简单的文本,但现在我想为每个元素显示一个自定义小部件。所以我将 a 子类QStyledItemDelegate化来实现这样的paint方法:

选择背景已正确呈现,但未显示任何小部件。我尝试使用QPainterQt 示例中的简单命令,效果很好:

所以我尝试了一些更改,例如:

  • 更改QStyledItemDelegateQItemDelegate
  • 添加painter->save()painter->restore()围绕渲染
  • 将小部件几何设置为可用大小

但是我现在有点卡住了,我在互联网上搜索了一段时间,但找不到任何我想要的示例,他们都在谈论编辑小部件(这更容易)或自定义绘制控件(预定义的,如进度条)。但在这里我真的需要一个我创建的自定义小部件,其中包含一些布局、标签和像素图。谢谢你的帮助!

我在 Ubuntu 11.04 上为 GCC 使用 Qt 4.7.3。

0 投票
1 回答
110 浏览

qt - 当 QCustomContextMenu 打开时接收事件

我在捕获键和鼠标事件时遇到问题。我有一个继承 QGLWidget 的类。我通过设置小部件的上下文菜单策略来调用上下文菜单 QCustomContextMenu。由于上下文菜单打开,我无法捕获鼠标和按键事件。即使上下文菜单打开,我也需要捕获事件。

谢谢!

0 投票
1 回答
3761 浏览

c++ - 在 main() 之外的 Qt 中创建一个窗口?

是否可以像在教程中那样在 main() 函数之外在 Qt 中创建一个窗口?我在这里做的他们有什么问题?我尝试编译时没有错误,但窗口从未出现过。谢谢。

主文件

计算器.h

计算器.cpp

0 投票
1 回答
331 浏览

qt - QT 挂起我的工具栏及其按钮

我创建了 2 个类,每个类:

  1. 作为QWidget父母
  2. Q_OBJECT
  3. 初始化一些动作,创建菜单栏和工具栏,并将动作连接到它们

然后我创建了主程序文件,通过指针创建QMainWindow并初始化了我的两个类。qmainwnd

而我所拥有的 - 菜单有效,第二个工具栏有效,但第一个工具栏(由类 1 创建)不响应鼠标点击。

怎么回事?为什么我什至不能移动第一个工具栏或单击它的按钮?

这是一个示例:

主文件

CModDocument.h

CModDocument.cpp

CModEditor.h

CModEditor.cpp

构建.pro

0 投票
2 回答
2287 浏览

qt - QWidgets 移动时会发出信号吗?

我需要知道 QWidget 何时被移动(当它的 x 或 y 属性发生更改时)。有什么信号吗?

0 投票
1 回答
9376 浏览

c++ - 复制一个 QWidget

我需要能够复制一个 Qwidget,这样我才能复制一个窗口,因为它会在运行时发生变化。这可能吗?

0 投票
6 回答
20840 浏览

qt - 编译时出现 QVision 小部件错误

在我将它用于我的研究之前,只有一个错误!

没有附带的行号。我试图找到,但没有看到一个开放式的部分。

我应该怎么做才能正确编译这个库?

0 投票
1 回答
1070 浏览

qt - Qt 使用 getDC 公开 QWidget 的句柄 - 如何在 Mac 上获取 QWidget 的句柄?

我可以使用 QWidget::getDC 在 QWidget 上进行本机 win32 调用(GetPixel/SetPixel)。我如何为 Mac 构建执行此操作?

使用 QImage/QPixmap 来检索像素信息不是一种选择,因为我需要非常快速地访问已经通过 Windows 和 Mac 上的 QPainter 绘制到 QWidget 上的内容。

我在 Windows 上使用 GetPixel 的原因是实现 2d 鼠标拾取。