问题标签 [qframe]

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 回答
567 浏览

c++ - 我可以从样式表 (qss) 更改自定义动态属性吗?

我有这样的QFrame习惯

我想在这样的qss样式表中设置这些颜色

这不起作用,有机会这样做吗?

0 投票
1 回答
1499 浏览

c++ - 带标题的 QFrame

我需要实现一个有标题的 QFrame(见图)。但是,在阅读了 QFrame 的文档并尝试重新实现该paintEvent(QPaintEvent*)方法后,我没有找到任何解决方案。

我想知道你们是否可以提供一个小例子来展示我如何实现这样的事情:

在此处输入图像描述

谢谢!

0 投票
1 回答
426 浏览

qt - 如何将 QTextDocument 作为小部件?

我需要构建一个基于QTextDocument.

我的小部件.h

我的小部件.cpp

我不能addWidget因为QTextDocument是一个对象。如何构建我的小部件?

0 投票
0 回答
178 浏览

windows - 如何确保 QFrame 标题使用 Window 10 的“使文本变大”缩放自动缩放?

我有一个自定义面板实现,它继承自QFrame. 我可以使用该setWindowTitle()功能设置标题。我注意到我无法设置此标题的字体大小,但我期待此标题将根据 Windows 10 的文本缩放进行缩放。我使用的是 4K 显示器,我希望文本可以通过 Windows 设置进行缩放,但似乎并非如此。我已经设置了两者QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling)QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps)因此整个应用程序和像素图像都正确缩放。

每个自定义面板的标题文本不受 Window 10 的“使文本变大”设置的影响,而主应用程序窗口的标题文本被正确缩放,使用 DrawText 函数绘制的那些文本被正确缩放。但是,我的自定义小部件的标题未正确缩放。Visual Studio 等其他应用程序的标签和文本由“显示设置”缩放顶部的“使文本更大设置”缩放。

我的自定义小部件也加载到 QDockWidget 中。我可以直接修改标题的字体大小,但我希望它能像应用程序标题栏一样正确缩放。

我能做些什么来解决这个问题吗?

帮助您理解问题的简化代码示例:我的主应用程序有一个 dockwidget 和一个自定义“面板”(由 QFrame 或 QWidget 继承)附加到它。(见下面的代码)

所以如果我添加以下代码,我可以直接调整标题的字体大小,但这是我自己手动更改的。我想要的是让它根据 Windows 的文本缩放因子(例如 150%、200% 等)自动缩放

所以我的问题是如何或是否可以通过控制面板中窗口 10 的文本缩放因子来缩放此自定义面板的标题(尤其是在高 dpi 情况下)?

更新: 我使用以下代码获取标题栏的高度,令人惊讶的是,在任何比例因子中,应用程序的标题栏和自定义小部件的标题栏给出了相同的值,尽管它们实际上看起来不同。当文本比例因子改变时,这些数字会改变。这是否意味着在处理缩放时,Window 实际上是如何看待应用程序及其附属小部件的?

更新2:

我从 Qt 论坛得到了一个相当不错的解决方案,因为 Qt5 的更高版本(Qt5.12.6)为我解决了这个问题(就像我在 Qt5.6.1 上一样)。显然已经进行了很多改进以帮助在高 dpi 监视器环境中使用。但有趣的是,在较新的更新中,Qt 决定缩放小部件的标题,而不是主应用程序的标题。

如果我想手动实现它并且当然不确定我是否可以在 Qt 环境中做到这一点,那么该解决方案肯定与如何创建一个与 Windows 管理器一起正常工作的小部件有关。QDockwidget 让我们设置自定义标题栏,这可能是绕过旧 Qt 版本中现有设置的唯一方法。

0 投票
1 回答
226 浏览

python - 复合小部件包含按钮、标签等。如何构建以及如何使用它

我正在寻找最合适的解决方案来创建复合小部件,我可以在应用程序的几个地方重用这些小部件(带有几个子菜单的图形控制界面,其中一些复杂的小部件将被重用)。

主要是我试图创建我将在几个地方使用的自定义 QWidget、QLabel 和 QFrame 对象。我准备了这样的例子:

它没有用。除了我测试的没有正面结果的其他方法之外,我期望我基于 Q tDesigner 构建的一种方法 - 创建自定义对象,该对象实际上添加到我的 QMainWindow 类中的其他小部件,但这不是我所期望的,我读到的应该是可能的。换句话说,我想到了带有子小部件的容器。真的有可能吗?

您能否建议我如何实现这一目标?如何创建自己的小部件,该小部件将从多个对象构建并将它们之间的整个逻辑保留在其类中?(根据逻辑,我理解按下一个按钮将显示另一个标签,而其他按钮将显示,等等......)

我遇到的问题之一是布局,它不允许我将这些标签放置在我想要的位置。

这是它应该是什么样子的示例。

0 投票
1 回答
167 浏览

qt - 在 QFrame 上叠加网格

所以,我有一个QFrame布局设置为QGridLayout.

在这个布局中,我有 16 行的图块,它们代表了一些调色板。

我希望这个瓷砖网格用线条分隔,就像网格应该那样。我可以用瓷砖轻松做到这一点paintEvent

然而,明显的问题是,在瓷砖之间,线条是双重的。当我将其扩展到其他应用程序时,差异变得更加明显。

那么,有没有办法为我创建网格线覆盖QFrame?我考虑过将整个事情转换为视图/场景解决方案,并使用drawForeground,但这似乎完全不恰当地使用了范式。

感谢您的帮助!

0 投票
1 回答
118 浏览

pyqt5 - 如何在 eventFilter 中设置 QFrame 颜色?

我有一个简单的 QWidget,其中包含一个框架和两个标签。我想使用 eventFilter 在标签悬停时更改 QFrame 背景颜色。有人可以检查下面的代码并告诉我为什么我不能更改 QFrame 背景以及它是否是正确的方法吗?

installEventFilter 应该应用于 QWidget 还是 QFrame?标签包含在 QFrame 中。

谢谢

0 投票
1 回答
937 浏览

python - 将 QVBoxLayout 添加到 QFrame?

我试图弄清楚如何将填充的 QVBoxLayout 添加到 QFrame 中。

在此处输入图像描述

在图像中,您会看到 4 个滑块,每个滑块都有两个标签和一个按钮。我一直在搞乱 QIcon 和样式表,这就是为什么它们现在看起来有点奇怪。这些对象中的每一个都是在我自己的自定义类中创建的,该类在 QVBoxLayout 中一起生成所有 4 个对象。

我想在每个 QVBoxLayout 周围放置一个边框。我已经翻阅了一页又一页的指南和其他人的代码,但我就是无法弄清楚我在这里做错了什么。我已经设法创建了一个只有黑色边框的 QFrame,它出现在 QVBoxLayout 后面,但无论如何它都没有与它绑定,所以它偏离中心。我可能会使用几何学将某些东西放在一起,但这似乎是我以后会后悔的事情。

在此处输入图像描述

您可以在第二张图片中看到我想要达到的效果,但我所做的一切都不起作用。我才刚刚开始学习编码,所以我现在有点超出我的深度 - 我已经阅读并阅读了 QT 文档和数百个类似于此的留言板问题,但没有任何意义并且没有一个有效。

我知道这将是一件非常简单的事情,但现在我已经准备好把电脑扔出窗外了。

这是我的代码-很抱歉,因为我一直在尝试很多不同的东西,所以有点混乱:

编辑:轻微更新,我设法通过创建一个单独的类来构建对象,该类继承 Qframe 并将 MySlider 对象传递给它。我需要找到一种方法让它在物体周围更紧密,但它的进步有些。

更新的滑块

0 投票
1 回答
294 浏览

python - QFrame 背景颜色与 QLineEdit、QListBoxWidget 等其他 Widget 重叠。如何避免?

在我的节目中,

QLineEdit 和 QListWidget 放置在 QVBoxLayout 中。然后 QVBoxLayout 放入一个带有背景颜色样式表的 QFrame:橙色。

QLineEdit 和 QListWidget 也获得与 QFrame 相同的背景颜色。如何避免背景颜色重叠?.

假设,如果我们通过样式表改变QListwidget的背景颜色,那么滚动条颜色也改变为QListWidget颜色。

如何避免?,我需要原生样式布局?

0 投票
1 回答
40 浏览

qt - 如何在 Qt 中调用框架

我在我的 ui 中包含了一个框架,我试图在我的源代码中调用它,我猜它应该是这样的 ui->frame; 但是当我输入它时,它并没有出现建议......