0

目前我正在尝试使用 qss 样式表设置 QMainWindow 样式。它工作得很好,除了设置大小。我正在使用以下 qss 参数:宽度、高度、最小宽度、最小高度。样式表文件中的最大宽度、最大高度。不幸的是,无论我做什么,我都不能强制窗口小于 200x100 像素。在 ui 表单中,几何、sizePolicy、minimumSize 和 maximumSize 等属性没有定义,因为我想完全使用 qss 文件对其进行样式设置。我会很感激任何提示:-)

4

2 回答 2

1

将窗口的最小尺寸设置为 0。

window->setMinimumSize(QSize(0,0));

并且还将窗口的最大尺寸设置为一个很大的值,(1000,1000)就可以了。

window->setMaximumSize(QSize(1000,1000));

在您的表单(ui)中设置此属性。或者在上面的构造函数中。

现在您可以设置任何您希望的尺寸css,考虑到最小 0 尺寸和最大 1000 尺寸将使您可以自由设置几乎任何值practically

于 2012-05-21T11:42:35.403 回答
0

注意:如果您想在单独的 UI/样式文件中定义整个 UI/样式,我建议检查 QML 和 QtQuick。对于传统的 QWidget 应用程序,我们尝试尽可能多地使用 Qt 样式表,但我们总是遇到一些限制(例如您不能从 Qt 样式表中设置大小策略)。

如果您的项目不是关键任务,我建议尝试 QML。它不像 QWidget 解决方案那样成熟,但在不久的将来会改进很多(尤其是使用 Qt5)。如果 QML 不是一个选项,那么您可能不得不不时在代码/QtDesigner 中设置一些参数。

QWidget + Qt 样式表也存在一些已知问题,例如 Mac OS X QAbstractButton 大小问题(例如:QAbstractButton 样式表问题- 要解决此问题,您必须修改 Qt 源代码或设置按钮的 setFlat() 参数)。

于 2012-05-22T20:34:17.143 回答