Qt QLayout在QDesktopWidget中

时间:2010-10-20 21:59:35

标签: qt layout

我想用通用方法来设置我的小部件的位置。 我想要的就是为我的小部件设置正确的坐标,它必须始终位于桌面的右下角。我的小部件可以改变他的高度(或者可能是宽度),但它必须通过两个纵坐标调整大小......(太多的单词)

我的想法是使用QDesktopWidget作为基本小部件,使用stratch项目放入我的QLayout(将内部(我的)小部件对齐到右侧和底部)

我的代码原型在这里:

QDesktopWidget * desktopWidget = QApplication::desktop();
MyWidget * myWidget = new MyWidget(desktopWidget);
QVBoxLayout * vlayout = new QVBoxLayout;
vlayout->addStretch();
vlayout->addWidget(myWidget);
QHBoxLayout * hlayout = new QHBoxLayout(desktopWidget);
hlayout->addStretch();
hlayout->addLayout(vlayout);

但它不起作用......

如果您知道如何,请帮助我实施我的想法。 此刻我只知道一种工作方式 - 手动设置小部件的位置并处理许多事件(调整大小等) - 但这并不好......(因为我做的很糟糕;-) )

PS:在其他小部件中使用qlayout的想法正在使用QTextBrowser,在视图等处使用sandclock等。

1 个答案:

答案 0 :(得分:1)

QDesktopWidget不打算像典型的小部件一样使用(至少据我所知,我很惊讶文档没有更明确的说明)。因此,您不应尝试使用父窗口小部件或尝试为其分配布局。您可以调用其方法来获取有关桌面环境的信息,或者连接到其信号以获知更改。

使用此信息,您可以设置自己的应用程序小部件的几何图形,以便它们显示在您想要的正确屏幕和位置上。

This page显示了一些基本功能。