首頁 >後端開發 >Python教學 >PyQt5每天必學之切換按鈕_python

PyQt5每天必學之切換按鈕_python

不言
不言原創
2018-04-20 14:14:432961瀏覽

這篇文章主要為大家詳細介紹了PyQt5每天必學之切換按鈕的相關資料,具有一定的參考價值,有興趣的小夥伴們可以參考一下

切換按鈕是QPushButton的特殊模式。它是一個具有兩種狀態的按鈕:按壓和未按壓。我們透過這兩種狀態之間的切換來修改其它內容。


#!/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_())

在我們的範例中,我們建立了三個切換按鈕和一個QWidget。我們設定QWidget的背景色為黑色。切換按鈕將切換顏色值的紅,綠和藍色部分。背景顏色將取決於切換。

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

初始顏色值為黑色。

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

建立一個切換按鈕。我們透過使用QPushButton 來建立一個按鈕,並設定其setCheckable()方法為真。

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn