from PyQt5 import QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication, QWidget, QHBoxLayout, QSlider, QLabel, QListWidget
import sys
from PyQt5.QtCore import Qt
Это мои параметры для максимальных и минимальных значений горизонтального слайдера.
df_min = 0
df_max = 100
class Window(QWidget):
def __init__(self):
super().__init__()
self.title = 'urbs visualization'
self.top = 300
self.left = 500
self.width = 800
self.height = 600
self.setWindowTitle(self.title)
self.setGeometry(self.left, self.top, self.width, self.height)
hbox = QHBoxLayout()
Я пытаюсь создать 2 горизонтальных ползунка, где, скажем, значение t_start было отрегулировано до 50. Новый минимум t_end для его диапазона будет t_start current value + 1 Аналогично для t_start, когда значение t_end станет 70, Я хочу, чтобы новый диапазон t _start стал 69 (t_end - 1). Мне удалось добиться этого с помощью ipywidgets на ноутбуке jupyter. Поскольку Qt-дизайнер для меня новичок, для меня это сложно.
#parameters for time widgets
#time horizontal slider
self.t_start = QSlider()
self.t_start.setOrientation(Qt.Horizontal)
self.t_end = QSlider()
self.t_end.setOrientation(Qt.Horizontal)
#t_start constraints
self.t_start.setRange(df_min, df_max - 1)
self.t_start.valueChanged.connect(self.changedValue)
self.label = QLabel(str(df_min))
self.label.setFont(QtGui.QFont('Sanserif', 15))
#t_end constraints
self.t_end.setRange(df_min + 1, df_max)
self.t_end.setSliderPosition(df_max)
self.t_end.valueChanged.connect(self.changedValue_2)
#testing constraints
self.t_start.valueChanged().t_end.setRange(t_start.value() + 1, df_max)
#self.t_end.rangeChanged(self.t_start.value(), df_max)
self.label_2 = QLabel(str(df_max))
self.label_2.setFont(QtGui.QFont('Sanserif', 15))
#adding widgets
hbox.addWidget(self.t_start)
hbox.addWidget(self.label)
hbox.addWidget(self.t_end)
hbox.addWidget(self.label_2)
self.setLayout(hbox)
self.show()
def changedValue(self):
size = self.t_start.value()
self.label.setText(str(size))
def changedValue_2(self):
size_2 = self.t_end.value()
self.label_2.setText(str(size_2))
App = QApplication(sys.argv)
window = Window()
sys.exit(App.exec())