在Qt

时间:2017-02-26 21:48:40

标签: c++ qt timeline

我正在尝试在Qt上制作一个采样器模块,我已经使用QtDesigner制作了很多按钮,它看起来像这样:

enter image description here

我想创建一个水平条,它在所有按钮上从左向右移动,此条是时间栏。所以它就像一个QProgressBar,但我需要一个不会阻止点击所有按钮的细条。你们有个主意吗?

谢谢, 罗宾

1 个答案:

答案 0 :(得分:0)

这是非常自定义的事情,因此没有预定义的解决方案可行。

有很多方法可以做到这一点。我会用最简单的方式描述你。

您可以在按钮顶部放置QProgressBar(我帮你做对了吗?)之后你可以这样做(代码不是复制粘贴,只是把它读作伪代码):

progressBar->installEventFilter(this);

// Then you create method for event filtering in your MainWindow or who handles that ProgressBar

bool MainWindow::eventFilter(QObject *obj, QEvent *event) {
  if (static_cast<QProgressBar *>(obj) == progressBar) {
    // Then check if event is mouse click event
    // and now iterate over your buttons. If some button->rect().contains() event->pos() that was clicked, call button->clicked() signal.
  }
}