ホームページ  >  記事  >  バックエンド開発  >  PyQt5 は毎日スイッチボタンを学習する必要がある_python

PyQt5 は毎日スイッチボタンを学習する必要がある_python

不言
不言オリジナル
2018-04-20 14:14:432843ブラウズ

この記事では、PyQt5 で毎日学習する必要があるスイッチ ボタンに関する関連情報を主に詳しく紹介します。興味のある方は参考にしてください。

スイッチ ボタンは QPushButton の特別なモードです。これは、押された状態と押されていない状態の 2 つの状態を持つボタンです。これら 2 つの状態を切り替えることで、他のコンテンツを変更します。


#!/usr/bin/python3
# -*- coding: utf-8 -*-

"""
PyQt5 教程

在这个例子中,我们创建三个切换按钮。
他们将控制一个QFrame的背景颜色。

作者:我的世界你曾经来过
博客:http://blog.csdn.net/weiaitaowang
最后编辑:2016年8月3日
"""

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QFrame
from PyQt5.QtGui import QColor

class Example(QWidget):

  def __init__(self):
    super().__init__()

    self.initUI()

  def initUI(self):

    self.col = QColor(0, 0, 0)

    redb = QPushButton('红', self)
    redb.setCheckable(True)
    redb.move(10, 10)

    greenb = QPushButton('绿', self)
    greenb.setCheckable(True)
    greenb.move(10, 60)

    blueb = QPushButton('蓝', self)
    blueb.setCheckable(True)
    blueb.move(10, 110)

    redb.clicked[bool].connect(self.setColor)
    greenb.clicked[bool].connect(self.setColor)
    blueb.clicked[bool].connect(self.setColor)

    self.square = QFrame(self)
    self.square.setGeometry(150, 20, 100, 100)
    self.square.setStyleSheet('QWidget { background-color:%s }' % 
      self.col.name())

    self.setGeometry(300, 300, 280, 170)
    self.setWindowTitle('切换按钮')    
    self.show()

  def setColor(self, pressed):

    source = self.sender()

    if pressed:
      val = 255
    else:
      val = 0

    if source.text() == '红':
      self.col.setRed(val)
    elif source.text() == '绿':
      self.col.setGreen(val)
    else:
      self.col.setBlue(val)

    self.square.setStyleSheet('QFrame { background-color:%s }' % 
      self.col.name())

if __name__ == '__main__':

  app = QApplication(sys.argv)
  ex = Example()
  sys.exit(app.exec_())

この例では、3 つのトグル ボタンと 1 つの QWidget を作成しました。 QWidget の背景色を黒に設定します。トグル ボタンは、カラー値の赤、緑、青の部分を切り替えます。背景色はトグルによって異なります。

self.col = QColor(0, 0, 0)

色の初期値は黒です。

redb = QPushButton('红', self)
redb.setCheckable(True)
 redb.move(10, 10)

トグルボタンを作成します。 QPushButton を使用してボタンを作成し、その setCheckable() メソッドを true に設定します。

redb.clicked[bool].connect(self.setColor)

トグルボタンをクリックすると、信号が定義したメソッドに接続されます。クリック信号はブール値を使用して操作します。

 source = self.sender()

トグルボタンの情報 (つまり、どのボタンがクリックされたか) を取得します。

if source.text() == '红':
      self.col.setRed(val)

赤いボタンの場合は、それに応じて色の赤い部分を更新します。

self.square.setStyleSheet('QFrame { background-color:%s }' % 
    self.col.name())

背景色の変更にはスタイルシートを使用します。

プログラムの実行後

PyQt5 は毎日スイッチボタンを学習する必要がある_pythonPyQt5 は毎日スイッチボタンを学習する必要がある_python

関連する推奨事項:

PyQt5は毎日学習する必要があるレイアウト管理

PyQt5は毎日学習する必要があるラベル付きのチェックボックス

PyQt5は毎日学習する必要がありますウィンドウの作成センタリング効果

以上がPyQt5 は毎日スイッチボタンを学習する必要がある_pythonの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。