Add ledbutton.py and bitmaps; fix qWarning usage

This commit is contained in:
falkTX 2012-02-29 00:22:43 +00:00
parent 7891109fd2
commit cf566c824f
12 changed files with 105 additions and 3 deletions

View File

@ -48,7 +48,7 @@ class DigitalPeakMeter(QWidget):
def displayMeter(self, meter_n, level):
if (meter_n < 0 or meter_n > self.m_channels):
qCritical("DigitalPeakMeter::displayMeter(%i, %f) - Invalid meter number", meter_n, level)
qCritical("DigitalPeakMeter::displayMeter(%i, %f) - Invalid meter number" % (meter_n, level))
return
if (level < 0.0):

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 735 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 751 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 751 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 747 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 744 B

View File

@ -20,5 +20,12 @@
<file>bitmaps/kbd_h_orange.png</file>
<file>bitmaps/kbd_v_classic.png</file>
<file>bitmaps/kbd_v_orange.png</file>
<file>bitmaps/led_off.png</file>
<file>bitmaps/led_blue.png</file>
<file>bitmaps/led_green.png</file>
<file>bitmaps/led_red.png</file>
<file>bitmaps/led_yellow.png</file>
<file>bitmaps/led-big_on.png</file>
<file>bitmaps/led-big_off.png</file>
</qresource>
</RCC>

94
src/ledbutton.py Normal file
View File

@ -0,0 +1,94 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Pixmap Button, a custom Qt4 widget
# Copyright (C) 2012 Filipe Coelho <falktx@gmail.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# For a full copy of the GNU General Public License see the COPYING file
# Imports (Global)
from PyQt4.QtCore import qCritical, QRectF
from PyQt4.QtGui import QPainter, QPixmap, QPushButton
# Imports (Custom Stuff)
import icons_rc
# Widget Class
class LEDButton(QPushButton):
BLUE = 1
GREEN = 2
RED = 3
YELLOW = 4
BIG_RED = 5
def __init__(self, parent):
QPushButton.__init__(self, parent)
self.m_pixmap = QPixmap()
self.m_pixmap_rect = QRectF(0, 0, 0, 0)
self.setCheckable(True)
self.setText("")
self.setColor(self.BLUE)
from PyQt4.QtCore import QTimer
QTimer.singleShot(3000, self.close)
def setColor(self, color):
self.m_color = color
if (color in (self.BLUE, self.GREEN, self.RED, self.YELLOW)):
size = 14
elif (color == self.BIG_RED):
size = 64
else:
qCritical("LEDButton::setColor(%i) - Invalid color" % (color))
return
self.setPixmapSize(size)
def setPixmapSize(self, size):
self.m_pixmap_rect = QRectF(0, 0, size, size)
self.setMinimumWidth(size)
self.setMaximumWidth(size)
self.setMinimumHeight(size)
self.setMaximumHeight(size)
def paintEvent(self, event):
painter = QPainter(self)
if (self.isChecked()):
if (self.m_color == self.BLUE):
self.m_pixmap.load(":/bitmaps/led_blue.png")
elif (self.m_color == self.GREEN):
self.m_pixmap.load(":/bitmaps/led_green.png")
elif (self.m_color == self.RED):
self.m_pixmap.load(":/bitmaps/led_red.png")
elif (self.m_color == self.YELLOW):
self.m_pixmap.load(":/bitmaps/led_yellow.png")
elif (self.m_color == self.BIG_RED):
self.m_pixmap.load(":/bitmaps/led-big_on.png")
else:
return
else:
if (self.m_color in (self.BLUE, self.GREEN, self.RED, self.YELLOW)):
self.m_pixmap.load(":/bitmaps/led_off.png")
elif (self.m_color == self.BIG_RED):
self.m_pixmap.load(":/bitmaps/led-big_off.png")
else:
return
painter.drawPixmap(self.m_pixmap_rect, self.m_pixmap, self.m_pixmap_rect)

View File

@ -25,6 +25,7 @@ import icons_rc
# Widget Class
class PixmapDial(QDial):
HORIZONTAL = 0
VERTICAL = 1

View File

@ -142,7 +142,7 @@ class PixmapKeyboard(QWidget):
elif (color == self.COLOR_ORANGE):
self.m_colorStr = "orange"
else:
qCritical("PixmapKeyboard::setMode(%i, %i) - Invalid keyboard color", mode, color)
qCritical("PixmapKeyboard::setMode(%i, %i) - Invalid keyboard color" % (mode, color))
self.setMode(mode)
return
@ -159,7 +159,7 @@ class PixmapKeyboard(QWidget):
self.p_width = self.m_pixmap.width()/2
self.p_height = self.m_pixmap.height()
else:
qCritical("PixmapKeyboard::setMode(%i, %i) - Invalid keyboard mode", mode, color)
qCritical("PixmapKeyboard::setMode(%i, %i) - Invalid keyboard mode" % (mode, color))
self.setMode(self.HORIZONTAL)
return