Qt:调整自定义小部件内部的resize()代码似乎无法正常工作

时间:2014-05-08 20:23:49

标签: c++ qt

我已经创建了一个自定义小部件,并且在其主要的" function(CustomWidget :: CustomWidget)我已经提供了以下代码:

int width = 30, height = 20; //example numbers
setMinimumWidth( ((width*8)*zoom) );
setMinimumHeight( ((height*8)*zoom) );
resize( minimumWidth(),minimumHeight() );

(注意:我已经更改了在ScrollArea中滚动的最小尺寸。)

但是,在编译程序时,大小是使用父窗口小部件布局选择的大小。 此外,如果我将代码放在MainWindow代码中的按钮下,则自定义窗口小部件的大小会发生变化。

PS:我使用的是Qt4,而不是5。

1 个答案:

答案 0 :(得分:3)

如果您希望窗口小部件是特定大小,则应该设置setFixedWidth()和setFixedHeight()。这些方法设置最小和最大高度和宽度。当您只设置您仍然对父布局说的最小尺寸时,它们可以根据需要大小。 请注意,根据您的操作系统/窗口管理器,窗口的大小可能会比您的固定大小更小或更大。

根据我的经验,如果您希望窗口小部件是固定大小并且窗口计算到最佳值,则最好先设置固定大小,然后将窗口小部件添加到布局中,第3次显示父窗口。