PySide (Qt for Python) は、Qt(キュート)の Python バインディングで、GUI を構築するためのクロスプラットフォームなライブラリです。最新のバージョンは Qt6 に対応した PySide6(記事執筆時点で 6.2.1)です。
PySide の使い方にも慣れてきたので、最近の GUI プログラミングにはもっぱら PySide を利用するようになりました。豊富な GUI 部品(ウィジェット)が利用できるのですが、それでも、こういうウィジェットが利用できればいいのにと思うことがあります。
そんな、欲しいウィジェットの一つが、From/To の範囲で指定できるスライダです。ダメ元で検索していたら、QRangeSlider という QSlider クラスを継承した拡張ウィジェットを見つけたので、早速サンプルを作りました。
本記事では、下記の OS 環境を使用しています。
![]() |
Fedora 35 Workstation | x86_64 |
PySide6 の QSlider は、こんなウィジェットです。
QSlider の例
PySide6 を利用できる環境で、さらに下記のように qtrangeslider モジュールをインストールします。
pip を使ったインストール例
$ pip install qtrangeslider
QRangeSlider のサンプル実行例をコードを示しました。
QRangeSlider の例
qt_rangeslider.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
# coding: utf-8 | |
import sys | |
from PySide6.QtCore import Qt | |
from PySide6.QtWidgets import ( | |
QApplication, | |
QVBoxLayout, | |
QWidget, | |
) | |
# https://pythonrepo.com/repo/tlambert03-QtRangeSlider-python-graphical-user-interface-applications | |
# pip install qtrangeslider | |
from qtrangeslider import QRangeSlider | |
class Example(QWidget): | |
def __init__(self): | |
super().__init__() | |
self.setWindowTitle('RangeSlider') | |
self.init_ui() | |
def init_ui(self): | |
vbox = QVBoxLayout() | |
self.setLayout(vbox) | |
slider = QRangeSlider(orientation=Qt.Horizontal) | |
slider.setTickPosition(QRangeSlider.TicksBothSides) | |
slider.setRange(0, 100) | |
slider.setTickInterval(10) | |
slider.valueChanged.connect(self.show_value) | |
vbox.addWidget(slider) | |
def show_value(self): | |
sld: QRangeSlider = self.sender() | |
print(sld.value()) | |
def main(): | |
app = QApplication(sys.argv) | |
ex = Example() | |
ex.show() | |
sys.exit(app.exec()) | |
if __name__ == '__main__': | |
main() |
参考サイト

にほんブログ村
0 件のコメント:
コメントを投稿