PySide (Qt for Python) は、Qt(キュート)の Python バインディングで、GUI などを構築するためのクロスプラットフォームなライブラリです。Linux/X11, macOS および Microsoft Windows をサポートしています。配布ライセンスは LGPL で公開されています。
PySide6 では、Chromium をベースにした QWebEngineView クラスのインスタンスを利用できるので [1]、インターネット・ブラウザを利用したければ、アプリ側で必要な機能を実装したブラウザを用意して利用することができます。
しかしながら、いろいろな事情から OS デフォルト(既定)のインターネット・ブラウザを利用したい場合もあります。そんなときは、QDesktopServices クラスが提供している openUrl というスタティック・メソッド(ファンクション)を利用する方法があります [2]。
QDesktopServices クラスの openUrl というスタティック・メソッドを利用したシンプルなサンプルを紹介します。
下記の OS 環境で動作確認をしています。
![]() |
Fedora Linux Workstation | 41 beta x86_64 |
Python | 3.12.6 | |
PySide6 | 6.7.2 |
以下がサンプル・プログラムです。
qt_desktop_services.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
import sys | |
from PySide6.QtCore import Qt, QUrl | |
from PySide6.QtGui import QDesktopServices | |
from PySide6.QtWidgets import ( | |
QApplication, | |
QMainWindow, | |
QStyle, | |
QToolBar, | |
QToolButton, | |
) | |
class Example(QMainWindow): | |
def __init__(self): | |
super().__init__() | |
self.url = QUrl('https://doc.qt.io/qtforpython-6/') | |
self.setWindowTitle('open URL') | |
toolbar = QToolBar() | |
self.addToolBar(Qt.ToolBarArea.TopToolBarArea, toolbar) | |
but = QToolButton() | |
icon = self.style().standardIcon( | |
QStyle.StandardPixmap.SP_TitleBarMenuButton | |
) | |
but.setIcon(icon) | |
but.clicked.connect(self.on_click) | |
toolbar.addWidget(but) | |
def on_click(self): | |
QDesktopServices.openUrl(self.url) | |
def main(): | |
app = QApplication(sys.argv) | |
ex = Example() | |
ex.show() | |
sys.exit(app.exec()) | |
if __name__ == '__main__': | |
main() |
サンプルの実行例を示しました。
ツールバーの Qt ボタンをクリックすると、デフォルトのブラウザが起動して、指定した URL が表示されるだけのサンプルです。
qt_desktop_services.py でデフォルトのブラウザを起動して指定 URL を表示した例
openUrl メソッドを利用するには、QDesktopServices クラスのインスタンスを作らずに、次のように直接クラスメソッドを指定します。
def on_click( self ): QDesktopServices.openUrl( self .url) |
ブラウザで指定した URL が表示されると、ウィンドウのフォーカスがブラウザの方へ移ってしまいます。
参考サイト

にほんブログ村
#オープンソース

0 件のコメント:
コメントを投稿