无法将QMainWindow的大小设置为小于200x100像素

时间:2012-05-21 10:38:36

标签: c++ qt size stylesheet qmainwindow

目前我正在尝试使用qss样式表来设置QMainWindow的样式。除了设置大小外,它运行良好。我正在使用以下qss参数:宽度,高度,最小宽度,最小高度。样式表文件中的max-width,max-height。 不幸的是,无论我做什么,我都不能强迫窗口小于200x100像素。在ui表单属性中,例如geometry,sizePolicy,minimumSize和maximumSize没有定义,因为我想使用qss文件完全设置样式。 我将不胜感激任何提示: - )

2 个答案:

答案 0 :(得分:1)

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

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

并且还将窗口的最大大小设置为较大的值(1000,1000)。

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

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

现在,您可以在css中设置任意大小,考虑到最小0大小和最大1000大小可让您自由设置几乎任何值practically

答案 1 :(得分:0)

作为注释:如果你想在一个单独的UI /样式文件中定义整个UI /样式,我建议检查QML和QtQuick。对于传统的QWidget应用程序,我们尽可能多地使用Qt样式表,但我们总是遇到一些限制(比如你不能从Qt样式表中设置size-policy)。

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

QWidget + Qt样式表也有一些已知问题,比如Mac OS X QAbstractButton大小问题(例如:QAbstractButton style sheet issue - 要解决这个问题,你要么修改Qt源代码,要么设置按钮的setFlat()参数)。