Проєкт "Подорожі" (checkBox)
У дизайнері форм починаємо створення інтерфейсу проекту. Для цього розмістимо на формі кнопку PushButton, прапорець CheckBox та два елементи напису Label. Зберігаємо форму з назвою travel.ui у каталозі Python34.
Скористаємось заготовкою коду:
import sys from PyQt4 import QtCore, QtGui, uic from PyQt4.QtGui import * form_class = uic.loadUiType("travel.ui")[0] # підключення файлу інтерфейсу class MyWindowClass(QtGui.QMainWindow, form_class): def __init__(self, parent=None): QtGui.QMainWindow.__init__(self, parent) self.setupUi(self) app = QtGui.QApplication(sys.argv) myWindow = MyWindowClass(None) myWindow.show() app.exec_()
Логіка подій проекту наступна: при клацанні кнопки PushButton відбувається заповнення написів Label. В один виводиться текст з описом міста. А для заповнення іншого відбувається перевірка: Якщо прапорець CheckBox позначено, то показати нічне фото міста. Якщо прапорець не позначено, то показати денне фото міста.
Отже, подія, яка запускає заповнення написів - клацання кнопки. У метод опису форми def __init__(self, parent=None): додаємо прив'язку до функції:
self.pushButton.clicked.connect(self.pushButton_clicked)
А нижче - описуємо цю функцію. Нагадуємо, мають бути заповнені два написи: один текстом про місто, другий - фотографією цього міста (якщо прапорець позначено, то має бути нічне фото, інакше - денне).
def pushButton_clicked(self): # функція опису дій при клацанні кнопки
self.label_2.setText("London is the capital of Great Britain") # заповнення текстового напису
if self.checkBox.isChecked(): # якщо прапорець позначено
pixmap = QPixmap('London_night.jpg') # у змінну pixmap записуємо фото London_night
else: # інакше
pixmap = QPixmap('London_day.jpg') # у змінну pixmap записуємо фото London_day
self.label.setPixmap(pixmap) # виведення зображення в напис
self.label.resize(200,200) # встановлення розміру зображення
self.label.setScaledContents(True) # зображення рівномірно масштабується до вказаного розміру
Зверніть увагу, фотографії повинні міститись у каталозі Python34.
Завдання
Проект "Подорожі"
Проект "Знайомство"
Для того, щоб текст у написі переносився по рядках - існує властивість wordwrap