我想用通用方法来设置我的小部件的位置。 我想要的就是为我的小部件设置正确的坐标,它必须始终位于桌面的右下角。我的小部件可以改变他的高度(或者可能是宽度),但它必须通过两个纵坐标调整大小......(太多的单词)
我的想法是使用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等。
答案 0 :(得分:1)
QDesktopWidget不打算像典型的小部件一样使用(至少据我所知,我很惊讶文档没有更明确的说明)。因此,您不应尝试使用父窗口小部件或尝试为其分配布局。您可以调用其方法来获取有关桌面环境的信息,或者连接到其信号以获知更改。
使用此信息,您可以设置自己的应用程序小部件的几何图形,以便它们显示在您想要的正确屏幕和位置上。
This page显示了一些基本功能。