PyQt5 - Проєкт "Подорожі" (checkBox)
У дизайнері форм починаємо створення інтерфейсу проекту. Для цього розмістимо на формі кнопку PushButton, прапорець CheckBox та два елементи напису Label. Зберігаємо форму з назвою travel.ui у каталозі Python.

Скористаємось заготовкою коду:
from PyQt5 import QtWidgets, uic
import sys
from PyQt5.QtGui import *
class Ui(QtWidgets.QMainWindow):
def __init__(self):
super(Ui, self).__init__()
uic.loadUi('travel.ui', self)
self.show()
app = QtWidgets.QApplication(sys.argv)
window = Ui()
app.exec_()
Логіка подій проекту наступна: при клацанні кнопки PushButton відбувається заповнення написів Label. В один виводиться текст з описом міста. А для заповнення іншого відбувається перевірка: Якщо прапорець CheckBox позначено, то показати нічне фото міста. Якщо прапорець не позначено, то показати денне фото міста.
Отже, подія, яка запускає заповнення написів - клацання кнопки. У метод опису форми def __init__(self, parent=None): додаємо прив'язку кнопки pushButton до функції:
self.pushButton = self.findChild(QtWidgets.QPushButton, 'pushButton')
self.pushButton.clicked.connect(self.buttonPressed)
Також описуємо два написи (label, label_2 та прапорець checkBox):
self.checkBox = self.findChild(QtWidgets.QCheckBox, 'checkBox')
self.label = self.findChild(QtWidgets.QLabel, 'label')
self.label_2 = self.findChild(QtWidgets.QLabel, 'label_2')
А нижче - описуємо функцію обробки події клацання кноки. Нагадуємо, мають бути заповнені два написи: один текстом про місто, другий - фотографією цього міста (якщо прапорець позначено, то має бути нічне фото, інакше - денне).
Зверніть увагу, для заповнення напису текстом використовується команда setText, а зображенням - setPixmap. Для зображення варто задавати достатній розмір та уможливлювати масштабування цього зображення до цього розміру.
def buttonPressed(self):
self.label_2.setText("London is the capital of Great Britain") # заповнення текстового напису
if self.checkBox.isChecked(): # якщо прапорець позначено
pixmap = QPixmap('London_night.jpg') # у змінну pixmap записуємо фото London_night.jpg
else: # інакше
pixmap = QPixmap('London_day.jpg') # у змінну pixmap записуємо фото London_day.jpg
self.label.setPixmap(pixmap) # виведення зображення в напис
self.label.resize(200,200) # встановлення розміру зображення
self.label.setScaledContents(True) # зображення рівномірно масштабується до вказаного розміру
Зверніть увагу, фотографії повинні міститись у каталозі Python, також потрібно переконатись, що розширення імені файлів фотографій відповідає фактичному.
Завдання
Проект "Подорожі"

Проект "Знайомство"

Для того, щоб текст у написі переносився по рядках - існує властивість wordwrap (її варто застосувати до текстового поля з виведенням тексту, а не зображення).

Поекспериментуйте із розміщенням компонентів форми, їх вирівнюванням.