我有一个使用LineEdit的Widgets来设置一些int值。为了更容易,我有一个额外的QToolButton,它将显示一个QSlider来修改该值。
重要提示:滑块是隐藏的!只有按下按钮才会出现。 当我连续有20个滑块窗口小部件时,如果放入预定义的布局,我会浪费每个窗口的空间。 如果在弹出之前不需要空格,则需要进行窗口调整。
屏幕截图代表ValueSelectorWidget。我列出了多个。
在ValueSelectorWidget类中,我有:
valveSlider = new QSlider(Qt::Horizontal, this);
正如您在屏幕截图中看到的,当我单击左侧ToolButton时,会出现QSlider。
在ValueSelectorWidget的左上角,因为上面的QSlider对象cration中有this
。
如何将左滑块放置在左侧ToolButton(sliderButton)?
QPoint sliderButtonPos = sliderButton->pos();
sliderButtonPos.rx() + 50 ;
sliderButtonPos.ry() + 50;
valveSlider->setGeometry(sliderButtonPos.x(), sliderButtonPos.y(), 120, 20);
如下所示:当我按下红点按钮时,滑块将出现在它旁边或当前鼠标位置旁边。
但这也不起作用。有什么建议?提前完成。
答案 0 :(得分:0)
您可以将设计器中的此滑块与其他窗口小部件一起添加到布局中。
然后只需为构造函数中的滑块调用类似widget.slider1->setVisible(false);
的smth,以便在开头隐藏它。然后在按钮中点击插槽,使其像widget.slider1->setVisible(true);
一样。
您需要检查布局如何工作,以便清楚地了解widgwets的位置。
答案 1 :(得分:0)
您不应该使用坐标来设计GUI。而是使用Qt给出的不同布局:http://doc.qt.io/qt-5/qlayout.html#details可能是一个很好的开始!
现在您的小部件完全对齐,请考虑@johngull回答隐藏/显示滑块。例如,您可以连接按钮onClick信号以切换滑块的显示