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()

Saya mencoba membuat 2 slider horizontal di mana jika katakanlah nilai t_start telah disesuaikan menjadi 50. Minimum t_end baru untuk rentangnya adalah nilai t_start saat ini + 1 Begitu juga untuk t_start, ketika nilai t_end menjadi 70, saya ingin rentang baru t _start menjadi 69(t_end - 1) Saya dapat mencapai ini dengan ipywidgets di notebook jupyter. Karena desainer Qt baru bagi saya, ini sulit bagi saya.

    #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())
0
Dchoo93 9 Juli 2020, 09:26

1 menjawab

Jawaban Terbaik