Проект "Подорожі" (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


Last modified: Wednesday, 18 April 2018, 12:03 PM