Динамическое изменение цвета фона

from PyQt4 import QtCore, QtGui
import sys
 
app = QtGui.QApplication(sys.argv)
window = QtGui.QWidget()
window.setWindowTitle("Изменение цвета фона окна")
window.resize(400,100)
 
# создание объекта-палитры с помощью получения текущей палитры компонента
pal = window.palette() 
 
# установка цвета (3) для фона (2) состояний Normal и Inactive (1)
pal.setColor(QtGui.QPalette.Normal, QtGui.QPalette.Background,QtGui.QColor("#008800"))
pal.setColor(QtGui.QPalette.Inactive, QtGui.QPalette.Background,QtGui.QColor("#ff0000"))
window.setPalette(pal) # использование о

Теги

Программа "Геометрические фигуры"

Идея заключается в следующем. При нажатии на кнопки ("Треугольник", "Прямоугольник" и др.) на холсте появляется соответствующая фигура, а в текстовом поле ее определение.

При щелчке по фигуре, расположенной на холсте, она меняется на другую, но тоже относящуюся к той же группе (например, треугольники или эллипсы).

Внизу холста могут появляться пояснения, характеризующие очередную фигуру (например, "прямоугольный треугольник").

Интересно так же "нарисовать" сектора, дуги и сегменты на эллипсе, чтобы продемонстрировать, как они образуются

Форматированный вывод

Старый способ - форматирование строк

Как вывести вещественное число с необходимой точностью

>>> 4 / 3
1.3333333333333333
>>> "%.4f" % 4/3
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    "%.4f" % 4/3
TypeError: unsupported operand type(s) for /: 'str' and 'int'
>>> "%.4f" % (4/3)
'1.3333'
>>> "%.4f" % (1.33335)
'1.3334'
>>> "%.4f" % (1.33334)
'1.3333'
>>> print("%.4f" % (1.33334))
1.3333
>>> print("%.4f, %.2f" % (1.33334, 153*0.43))

Менеджеры компоновки в PyQt

Пример сочетания в одном окне разных способов компоновки

Компановка компонентов в PyQT
from PyQt4 import QtGui, QtCore
import sys
app = QtGui.QApplication(sys.argv)
window = QtGui.QWidget()
window.resize(350,200)
 
button1 = QtGui.QPushButton("1")
button2 = QtGui.QPushButton("2")
 
hbox = QtGui.QHBoxLayout() # горизонтальный упаковщик
hbox.addWidget(button1,1,QtCore.Qt.AlignRig

Теги

Программа "Определитель дней" (Tk)

В отличие от программы, написанной с использованием PyQt, здесь приходится "эмулировать" поле даты, т.к. подобный компонент в Tkinter и его расширениях найти не удалось.

В таком случае сложность заключается в обработке того, что вводит пользователь или в ограничении возможности некорректного ввода. Причем второе предпочтительней.

Как работать с формой, созданной в Qt Designer

Подключение ui-файла к py-файлу

Допустим, имеются основной файл с программой (*.py) и созданная в QtDesigner форма (*.ui).

Загрузка формы в py-скрипт выполняется с помощью функции loadUi подмодуля uic библиотеки PyQt. Функция возвращает объект-форму.

Обращение к компонентам происходит как к свойствам полученной формы (ООП-стиль).

Теги