问题标签 [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 回答
231 浏览

drag - 有没有办法将 QWidget 拖到 QGraphicsView 上?

我想将 QWidget 继承的自定义项拖到 QGraphicsView 上?任何想法谢谢

0 投票
1 回答
654 浏览

c++ - 半透明 QWidget 应该是可点击的跨操作系统

我正在尝试使用跨操作系统的 Qt (C++) 应用程序完成以下任务。运行程序后会弹出一个新窗口,即全屏 QWidget。现在我希望它是透明/透明的,所以用户实际上不会看到它。在这个“层”上,用户可以拖动他/她的鼠标来绘制一个(红色)矩形来选择一个区域——当鼠标被释放时——截屏。

问题:
问题在于整个透明层,因为这似乎在跨操作系统时效果不佳。因为当我单击图层所在的位置时,为了调用 mousePressEvent(),我单击它到它下面的窗口,就好像它甚至不存在一样。然而,在 Ubuntu 上,我没有。我希望在 Windows 上获得相同的效果,但到目前为止我什么也没得到......
(出现另一个 GUI 对象,例如按钮,只会使按钮成为图层的可点击部分)

在 Ubuntu 11.04 32 位和 Windows 7 Home Premium 64 位上测试。(尝试使用Mac,这个问题会解决吗?)

那么有谁知道这将如何工作? 到目前为止,我已经包含了我的代码。(清除我所有的其他 100 次尝试。)

main.cpp 这里我设置了translucentBackground,这里我可能错过了一个设置或者配置不正确。

小部件.cpp

小部件.h

另外,我想我已经浏览了谷歌会在这个主题上找到的所有结果,就像 Qt 的 API 文档一样。我已经严重用完了这个选项。(我在 Java 中开始了这个项目,但到目前为止,使用 Qt 的 C++ 似乎工作量要少得多。)

任何帮助将不胜感激!

0 投票
1 回答
148 浏览

c++ - qt4:覆盖 UI 编辑器创建的小部件的事件处理程序方法

我想知道是否可以覆盖诸如paintEvent或mousePressEvent之类的方法,例如,对于不是以编程方式创建但在UI编辑器中创建的小部件。

0 投票
2 回答
5387 浏览

qt - 如何使 QWidget 透明

我需要创建一个 alpha 透明小部件,它基本上是一个带有阴影的导航栏,下面的小部件需要通过阴影部分可见。小部件加载一个 PNG,然后在绘制事件上绘制它。问题是阴影全是黑色并且不是 alpha 透明的。

这是我目前正在使用的代码:

有人知道我需要更改什么以确保小部件真正透明吗?

0 投票
1 回答
2208 浏览

qt - 检测 QPushButton 是否被点击

我试图从paintEvent()中找出是否正在按下按钮,以便我可以绘制“向下”状态。但是,我不知道在哪里可以找到这些信息。我试过 QStyleOptionButton::state 但它不知道按钮是否被点击。调试语句的输出总是类似于 "QStyle::State("Active | Enabled | HasFocus | MouseOver" )" 所以没有关于 MouseDown 状态的内容。

那么知道如何检测按钮是否被点击?

0 投票
2 回答
605 浏览

qt4 - 自定义 QWidget 布局问题

我对 QT 很陌生,我已经制作了我的第一个自定义 QWidget 子类......一切都很好,直到我尝试向它添加一些标签。他们都被挤到顶角。

这是我的代码:

}

有谁知道我做错了什么?为什么不是所有这些标签都被布置在一个网格中?或者,如果它们是 - 为什么网格不使用我所有子类的可用空间?

干杯,

詹姆士

0 投票
1 回答
2655 浏览

qt - QWidget 没有一致地更新/重新绘制

我正在构建一个类似于 CAD 的应用程序,当视口对象选择发生变化时,会发出一个包含新对象的 QHash 的信号。该信号被它的文档子窗口捕获,该窗口将新的属性/设置 UI 从中提取出来,破坏主窗口属性窗格中显示的现有属性,并用新的属性/设置替换它们。

使用打印语句,我知道这是可行的——所有信号/插槽连接都正确触发。但是,属性小部件的重绘非常不一致,如果我直接在主窗口上执行操作(按下按钮,将鼠标悬停在小部件上)相关小部件会更新。但是当我只是在视口中选择对象时,属性窗格会“错过”更新,因此它最终会显示前一个对象的属性 - 我知道这对我来说不是问题,因为如果我移动窗口或与小部件(触发重绘),小部件神奇地变得正确。

这些函数不是从单独的线程中调用的。如果我在我的代码中手动调用 update() ,则没有任何变化。如果我直接调用 repaint() (我知道我不应该),它的效果会好一些,但它有点不稳定 - 有时根本不绘制小部件。

有没有人有类似的经历?

0 投票
1 回答
2025 浏览

c++ - 为什么 QWidget 的析构函数不是虚拟的?

查看 qwidget.h,我发现析构函数如下:

我想知道为什么这没有被声明为虚拟

0 投票
1 回答
648 浏览

qt - QGLWidget 的问题

我对 QGLWidget 有疑问。实际上,通过鼠标操作,QGLWidget 将得到更新。我需要从此小部件打开另一个窗口,例如使用双击事件。我正在创建一个以 QGLWidget 作为父级的新小部件 QWidget,并将以下标志设置为新窗口。

QWidget::setWindowFlags(Qt::Window | Qt::WindowTitleHint | Qt::CustomizeWindowHint | Qt::WindowMinimizeButtonHint | Qt::WindowCloseButtonHint);

这个新窗口可以正常打开,按预期工作。但是当我关闭这个窗口并尝试更新 QGLWidget 时,它的行为很奇怪。整个 QGLWidget(新窗口打开的区域)的一小部分正在更新,但不是整个 QGLWidget。

另外,错过了在这里更新另一点。这个问题并非每次都发生。qt 应用程序由另一个应用程序打开,并使用所需的 dll 重新分发。当作为独立应用程序打开时,它没有问题。但是当用其他应用程序打开时,问题又出现了。

任何想法为什么?

谢谢!!

0 投票
1 回答
745 浏览

qt - QGLWidget 上的上下文菜单问题

我对 QGLWidget 和 QTreeView 上的自定义上下文菜单有疑问。我将 QTreeview 和 QGLWidget 添加到带有拆分器的通用小部件中。我通过以下代码打开上下文菜单。

actions 是 QActions 的列表。

在 QGLWidget 上按下鼠标时,如果满足某些条件,鼠标光标会发生变化。右键单击打开上下文菜单后,如果在其中一个菜单项上按下鼠标,一切都很好。如果在上下文菜单的一项上没有发生鼠标按下,则上下文菜单关闭并且问题开始。问题是即使在按下鼠标时满足所有条件,鼠标光标也不会改变。我不确定 QWidget 是否在这里失去焦点。所以,我尝试在鼠标按下事件中设置焦点。但帮助不大。任何解决此问题的建议。

谢谢!