Я новичок в программировании QT, и у меня есть вопрос. У меня есть qslider и qlabel и видео. Пока видео воспроизводится, тик qslider продвигается вперед, как вы можете догадаться. То, что я хочу сделать, это поставить qlabel только под тик qslider и переместить его с тиканием при обновлении текста qlabel ...Динамическое изменение позиции qlabel
ответ
Сначала вы можете попробовать QLabel.setIndent (self, int), позвонить это когда меняется тик. Если это сработает для вас, это самая простая возможность, если не просьба повторить.
Спасибо, но что такое self в QLabel.setIndent (self, int)? –
Взгляните на документацию setIndent, в этом и других методах они используют self как первый параметр. Моя интерпретация заключается в том, что это неявный параметр, который задается получателем сообщения, как в Python. Поэтому я думаю, что это работает, если вы просто вызываете yourQLabel.setIndent (int). «yourQLabel» - это первый (неявный) параметр. –
Вы не можете «переместить» QLavel по всему виджету из-за Qt layout system: виджет существует внутри макета. Итак, если вы хотите «переместить» свой ярлык только вертикально горизонтально, есть несколько способов решить вашу проблему.
Самый простой заключается в использовании функции QLabel::setIndent
(это «движение» текст внутри QLabel
):
Если текстовая метка отображается, отступ применяется к левому краю, если выравнивание() является Qt :: AlignLeft, к правому краю, если alignment() - Qt :: AlignRight, к верхнему краю, если alignment() - Qt :: AlignTop, и к нижнему краю, если alignment() - Qt :: AlignBottom.
Также вы можете попробовать этот путь (он будет 'двигаться' QLabel
себя):
- Создание макета коробки (
QHBoxLayout
илиQVBoxLayout
). - Добавить участок (звонок
QBoxLayout::addStretch
). - Добавить QLabel (звонок
QLayout::addWidget
). - Добавить еще раз.
- Затем вы можете изменить коэффициенты растяжения для имитации «move».
Начальное значение коэффициента растяжения будет определять начальное положение метки.
Код примера для имитации QLabel движущихся слева направо:
class MyWidget : public QWidget
{
Q_OBJECT
public:
MyWidget(QWidget* parent) : QWidget(parent)
{
layout_ = new QHBoxLayout(this);
layout_->addStretch();
layout_->addWidget(new QLabel("Moving text", this));
layout_->addStretch(100);
connect(&timer_, SIGNAL(timeout()), SLOT(moveLabel()));
timer_.start(1000);
}
public slots:
void moveLabel()
{
layout_->setStretch(0, layout_->stretch(0) + 1);
layout_->setStretch(1, layout_->stretch(1) - 1);
if(layout_->stretch(0) == 100)
timer_.stop();
}
private:
QBoxLayout* layout_;
QTimer timer_;
};
И еще один вариант для вашей ситуации является наследование QSlider
, а затем повторно реализовать защищенную функцию QWidget::paintEvent
для того, чтобы нарисовать какой-то ярлык над ползунком.
- 1. Динамическое изменение позиции
- 2. Динамическое изменение позиции формы
- 3. Динамическое обновление QLabel - pyqt
- 4. Получение позиции щелчка мыши в QLabel
- 5. Android Gridview изменение позиции позиции
- 6. Динамическое изменение позиций кнопки ToolStrip
- 7. Изменение QLabel текста для многих QLabels
- 8. Изменение позиции позиции на прокрутке в android
- 9. Почему изменение позиции подзаголовка?
- 10. Изменение UIBarButtonItem позиции
- 11. OpenGL изменение вершинной позиции
- 12. Matplotlib: изменение позиции сюжета
- 13. Изменение позиции позиций
- 14. CSS изменение позиции/проблемы
- 15. Изменение в позиции мыши
- 16. Изменение позиции mysql
- 17. Изменение позиции строкового значения
- 18. Изменение позиции UILabel
- 19. Изменение позиции конкретной подсказки
- 20. изменение позиции NSMutableArray
- 21. Изменение позиции OpenGL Android
- 22. PHP изменение даты позиции
- 23. Изменение позиции строк Excel
- 24. изменение HBOX узлов позиции
- 25. Изменение позиции дивы
- 26. woocommerce изменение позиции цены
- 27. Динамическое изменение вида контейнера
- 28. Динамическое изменение ссылок
- 29. Динамическое изменение размера изображения
- 30. Динамическое изменение управления изображением
вы можете использовать setGeometry, а также изменить его положение в диалоговом окне ... – Mostafa