ГрафичСский интСрфСйс Π½Π° python: GUI (графичСский интСрфСйс ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ) | Python 3 для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… ΠΈ Ρ‡Π°ΠΉΠ½ΠΈΠΊΠΎΠ²

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Π”ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π° Π² PyQt5 | Python 3 для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… ΠΈ Ρ‡Π°ΠΉΠ½ΠΈΠΊΠΎΠ²

Π”ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π° (Π΄ΠΈΠ°Π»ΠΎΠ³ΠΈ) ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° соврСмСнных графичСских ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π”ΠΈΠ°Π»ΠΎΠ³ Π² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ — это бСсСда ΠΌΠ΅ΠΆΠ΄Ρƒ двумя ΠΈ Π±ΠΎΠ»Π΅Π΅ людьми. Π’ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π΄ΠΈΠ°Π»ΠΎΠ³ – это ΠΎΠΊΠ½ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Β«Π±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Ρ‚ΡŒΒ» с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Π”ΠΈΠ°Π»ΠΎΠ³ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для Π²Π²ΠΎΠ΄Π° ΠΈ измСнСния Π΄Π°Π½Π½Ρ‹Ρ…, измСнСния настроСк прилоТСния, ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

QInputDialog

QInputDialog — простой ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ Π΄ΠΈΠ°Π»ΠΎΠ³ для получСния СдинствСнного значСния ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π’Π²Π΅Π΄Ρ‘Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ строкой, числом ΠΈΠ»ΠΈ ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠΌ ΠΈΠ· списка.

#!/usr/bin/python3
# -*- coding: utf-8 -*-

import sys
from PyQt5.QtWidgets import (QWidget, QPushButton, QLineEdit,
    QInputDialog, QApplication)


class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()


    def initUI(self):

        self.btn = QPushButton('Dialog', self)
        self.btn.move(20, 20)
        self.btn.clicked.connect(self.showDialog)

        self.le = QLineEdit(self)
        self.le.move(130, 22)

        self.setGeometry(300, 300, 290, 150)
        self.setWindowTitle('Input dialog')
        self.show()


    def showDialog(self):

        text, ok = QInputDialog.getText(self, 'Input Dialog',
            'Enter your name:')

        if ok:
            self.le.setText(str(text))


if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΈ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ рСдактирования строки. Кнопка ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π΄ΠΈΠ°Π»ΠΎΠ³ Π²Π²ΠΎΠ΄Π°. Π’Π²ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ тСкст ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΡ‘Π½ Π² Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π΅ рСдактирования строки.

text, ok = QInputDialog.getText(self, 'Input Dialog', 'Enter your name:')

Π­Ρ‚Π° строка ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π΄ΠΈΠ°Π»ΠΎΠ³ Π²Π²ΠΎΠ΄Π°. ΠŸΠ΅Ρ€Π²Π°Ρ строка – это Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π΄ΠΈΠ°Π»ΠΎΠ³Π°, вторая – сообщСниС Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄ΠΈΠ°Π»ΠΎΠ³Π°. Π”ΠΈΠ°Π»ΠΎΠ³ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π²Π²Π΅Π΄Ρ‘Π½Π½Ρ‹ΠΉ тСкст ΠΈ логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Если ΠΌΡ‹ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡƒ «ОК», Ρ‚ΠΎ логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ являСтся ΠΏΡ€Π°Π²Π΄ΠΎΠΉ.

if ok:
    self.le.setText(str(text))

ВСкст, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΈΠ· Π΄ΠΈΠ°Π»ΠΎΠ³Π°, устанавливаСтся Π² Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ рСдактирования строки.

QColorDialog

QColorDialog — Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ Π΄ΠΈΠ°Π»ΠΎΠ³Π° для Π²Ρ‹Π±ΠΎΡ€Π° Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

#!/usr/bin/python3
# -*- coding: utf-8 -*-

import sys
from PyQt5.QtWidgets import (QWidget, QPushButton, QFrame,
    QColorDialog, QApplication)
from PyQt5.QtGui import QColor


class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()


    def initUI(self):

        col = QColor(0, 0, 0)

        self.btn = QPushButton('Dialog', self)
        self.btn.move(20, 20)

        self.btn.clicked.connect(self.showDialog)

        self.frm = QFrame(self)
        self.frm.setStyleSheet("QWidget { background-color: %s }"
            % col.name())
        self.frm.setGeometry(130, 22, 100, 100)

        self.setGeometry(300, 300, 250, 180)
        self.setWindowTitle('Color dialog')
        self.show()


    def showDialog(self):

        col = QColorDialog.getColor()

        if col.isValid():
            self.frm.setStyleSheet("QWidget { background-color: %s }"
                % col.name())


if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ прилоТСния ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΈ QFrame. Π€ΠΎΠ½ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° устанавливаСтся Ρ‡Ρ‘Ρ€Π½Ρ‹ΠΌ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ QColorDialog, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ„ΠΎΠ½.

col = QColor(0, 0, 0)

Π­Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π° QtGui.QFrame.

col = QColorDialog.getColor()

Π­Ρ‚ΠΎ строка высвСтит QColorDialog.

if col.isValid():
    self.frm.setStyleSheet("QWidget { background-color: %s }"
        % col.name())

ΠœΡ‹ провСряСм, являСтся Π»ΠΈ Ρ†Π²Π΅Ρ‚ Π²Π°Π»ΠΈΠ΄Π½Ρ‹ΠΌ. Если ΠΌΡ‹ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«CancelΒ», возвращаСтся Π½Π΅Π²Π°Π»ΠΈΠ΄Π½Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚. Если Ρ†Π²Π΅Ρ‚ Π²Π°Π»ΠΈΠ΄Π΅Π½, ΠΌΡ‹ мСняСм Ρ†Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ стилСй (CSS).

QFontDialog

QFontDialog – это Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ Π΄ΠΈΠ°Π»ΠΎΠ³Π° для Π²Ρ‹Π±ΠΎΡ€Π° ΡˆΡ€ΠΈΡ„Ρ‚Π°.

#!/usr/bin/python3
# -*- coding: utf-8 -*-

import sys
from PyQt5.QtWidgets import (QWidget, QVBoxLayout, QPushButton,
    QSizePolicy, QLabel, QFontDialog, QApplication)


class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()


    def initUI(self):

        vbox = QVBoxLayout()

        btn = QPushButton('Dialog', self)
        btn.setSizePolicy(QSizePolicy.Fixed,
            QSizePolicy.Fixed)

        btn.move(20, 20)

        vbox.addWidget(btn)

        btn.clicked.connect(self.showDialog)

        self.lbl = QLabel('Knowledge only matters', self)
        self.lbl.move(130, 20)

        vbox.addWidget(self.lbl)
        self.setLayout(vbox)

        self.setGeometry(300, 300, 250, 180)
        self.setWindowTitle('Font dialog')
        self.show()


    def showDialog(self):

        font, ok = QFontDialog.getFont()
        if ok:
            self.lbl.setFont(font)


if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΈ ΠΌΠ΅Ρ‚ΠΊΡƒ. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ QFontDialog, ΠΌΡ‹ мСняСм ΡˆΡ€ΠΈΡ„Ρ‚ ΠΌΠ΅Ρ‚ΠΊΠΈ.

QFileDialog

QFileDialog – это Π΄ΠΈΠ°Π»ΠΎΠ³, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ»ΠΈ ΠΏΠ°ΠΏΠΊΠΈ. Π€Π°ΠΉΠ»Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Π½Ρ‹ ΠΈ для открытия, ΠΈ для сохранСния.

#!/usr/bin/python3
# -*- coding: utf-8 -*-

import sys
from PyQt5.QtWidgets import (QMainWindow, QTextEdit,
    QAction, QFileDialog, QApplication)
from PyQt5.QtGui import QIcon


class Example(QMainWindow):

    def __init__(self):
        super().__init__()

        self.initUI()


    def initUI(self):

        self.textEdit = QTextEdit()
        self.setCentralWidget(self.textEdit)
        self.statusBar()

        openFile = QAction(QIcon('open.png'), 'Open', self)
        openFile.setShortcut('Ctrl+O')
        openFile.setStatusTip('Open new File')
        openFile.triggered.connect(self.showDialog)

        menubar = self.menuBar()
        fileMenu = menubar.addMenu('&File')
        fileMenu.addAction(openFile)

        self.setGeometry(300, 300, 350, 300)
        self.setWindowTitle('File dialog')
        self.show()


    def showDialog(self):

        fname = QFileDialog.getOpenFileName(self, 'Open file', '/home')[0]

        f = open(fname, 'r')

        with f:
            data = f.read()
            self.textEdit.setText(data)


if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ строку мСню, Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ рСдактирования тСкста ΠΈ строку состояния. ΠŸΡƒΠ½ΠΊΡ‚ мСню ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ QtGui.QFileDialog, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π²Ρ‹Π±ΠΎΡ€Π° Ρ„Π°ΠΉΠ»Π°. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ Ρ„Π°ΠΉΠ»Π° загруТаСтся Π² Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ рСдактирования тСкста.

fname = QFileDialog.getOpenFileName(self, 'Open file', '/home')[0]

ΠœΡ‹ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ QFileDialog. ΠŸΠ΅Ρ€Π²Π°Ρ строка Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ getOpenFileName() – это Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ. Вторая строка ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ установлСн Π² ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ «ВсС Ρ„Π°ΠΉΠ»Ρ‹ (*)Β».

f = open(fname, 'r')

with f:
    data = f.read()
    self.textEdit.setText(data)

Π’Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» читаСтся ΠΈ содСрТимоС Ρ„Π°ΠΉΠ»Π° записываСтся Π² Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ рСдактирования тСкста.

Π’ этой части руководства PyQt5, ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ с Π΄ΠΈΠ°Π»ΠΎΠ³Π°ΠΌΠΈ.

МСню ΠΈ Ρ‚ΡƒΠ»Π±Π°Ρ€Ρ‹ Π² PyQt5

Π’ этой части ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΠ° PyQt5, ΠΌΡ‹ создадим мСню ΠΈ Ρ‚ΡƒΠ»Π±Π°Ρ€ (панСль инструмСнтов). МСню прСдставляСт собой Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΊΠΎΠΌΠ°Π½Π΄, располоТСнных Π² ΠΌΠ΅Π½ΡŽΠ±Π°Ρ€Π΅. ПанСль инструмСнтов содСрТит ΠΊΠ½ΠΎΠΏΠΊΠΈ с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΎΠ±Ρ‰ΠΈΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.

Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ

Класс QMainWindow прСдоставляСт Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ прилоТСния. Π­Ρ‚ΠΎ позволяСт ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ классичСский каркас ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с статусбаром, Ρ‚ΡƒΠ»Π±Π°Ρ€ΠΎΠΌ ΠΈ мСню.

Бтатусбар (строка состояния)

Π‘Ρ‚Ρ€ΠΎΠΊΠ° состояния являСтся Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для отобраТСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ состоянии.

#!/usr/bin/python3
# -*- coding: utf-8 -*-


import sys
from PyQt5.QtWidgets import QMainWindow, QApplication


class Example(QMainWindow):

    def __init__(self):
        super().__init__()

        self.initUI()


    def initUI(self):

        self.statusBar().showMessage('Ready')

        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('Statusbar')
        self.show()


if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

Бтатусбар создаётся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ QMainWindow.

self.statusBar().showMessage('Ready')

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ строку состояния, ΠΌΡ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ statusBar() класса QtWidgets.QMainWindow. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° создаСт строку состояния. ΠŸΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π²Ρ‹Π·ΠΎΠ²Ρ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ статусбара. showMessage() ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ сообщСниС Π² строкС состояния.

Π‘Ρ‚Ρ€ΠΎΠΊΠ° мСню

Π‘Ρ‚Ρ€ΠΎΠΊΠ° мСню — общая Ρ‡Π°ΡΡ‚ΡŒ прилоТСния с графичСским интСрфСйсом. Π­Ρ‚ΠΎ Π³Ρ€ΡƒΠΏΠΏΠ° ΠΊΠΎΠΌΠ°Π½Π΄, располоТСнных Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… мСню.

#!/usr/bin/python3
# -*- coding: utf-8 -*-

import sys
from PyQt5.QtWidgets import QMainWindow, QAction, qApp, QApplication
from PyQt5.QtGui import QIcon


class Example(QMainWindow):

    def __init__(self):
        super().__init__()

        self.initUI()


    def initUI(self):

        exitAction = QAction(QIcon('exit.png'), '&Exit', self)
        exitAction.setShortcut('Ctrl+Q')
        exitAction.setStatusTip('Exit application')
        exitAction.triggered.connect(qApp.quit)

        self.statusBar()

        menubar = self.menuBar()
        fileMenu = menubar.addMenu('&File')
        fileMenu.addAction(exitAction)

        self.setGeometry(300, 300, 300, 200)
        self.setWindowTitle('Menubar')
        self.show()


if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΌΡ‹ создаСм строку мСню с ΠΎΠ΄Π½ΠΈΠΌ мСню. Π­Ρ‚ΠΎ мСню Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ дСйствиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. Π‘Ρ‚Ρ€ΠΎΠΊΠ° состояния Ρ‚Π°ΠΊΠΆΠ΅ создаСтся. ДСйствиС доступно с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ctrl + Q.

exitAction = QAction(QIcon('exit.png'), '&Exit', self)
exitAction.setShortcut('Ctrl+Q')
exitAction.setStatusTip('Exit application')

QAction являСтся абстракциСй для дСйствий, ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹Ρ… ΠΈΠ· мСню, ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов, ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ клавиш. Π’ этих Ρ‚Ρ€Π΅Ρ… строках, ΠΌΡ‹ создаСм дСйствиС с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΈΠΊΠΎΠ½ΠΊΠΎΠΉ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, для этого дСйствия опрСдСляСтся комбинация клавиш. Π’Ρ€Π΅Ρ‚ΡŒΡ строка создаСт подсказку, которая показываСтся Π² строкС состояния, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π½Π°Π²Π΅Π΄Ρ‘Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΌΡ‹ΡˆΠΈ Π½Π° ΠΏΡƒΠ½ΠΊΡ‚ мСню.

exitAction.triggered.connect(qApp.quit)

Когда ΠΌΡ‹ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ ΠΈΠΌΠ΅Π½Π½ΠΎ это дСйствиС, срабатываСт сигнал. Π‘ΠΈΠ³Π½Π°Π» ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ quit() Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° QApplication. Π­Ρ‚ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

menubar = self.menuBar()
fileMenu = menubar.addMenu('&File')
fileMenu.addAction(exitAction)

ΠœΠ΅Ρ‚ΠΎΠ΄ menuBar() создаСт строку мСню. ΠœΡ‹ создаСм мСню Ρ„Π°ΠΉΠ»Π° ΠΈ добавляСм ΠΊ Π½Π΅ΠΌΡƒ дСйствиС Π²Ρ‹Ρ…ΠΎΠ΄Π°.

ПанСль инструмСнтов (Ρ‚ΡƒΠ»Π±Π°Ρ€)

МСню Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΡŽΡ‚ всС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.

ПанСли инструмСнтов ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ быстрый доступ ΠΊ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ.

#!/usr/bin/python3
# -*- coding: utf-8 -*-


import sys
from PyQt5.QtWidgets import QMainWindow, QAction, qApp, QApplication
from PyQt5.QtGui import QIcon


class Example(QMainWindow):

    def __init__(self):
        super().__init__()

        self.initUI()


    def initUI(self):

        exitAction = QAction(QIcon('exit24.png'), 'Exit', self)
        exitAction.setShortcut('Ctrl+Q')
        exitAction.triggered.connect(qApp.quit)

        self.toolbar = self.addToolBar('Exit')
        self.toolbar.addAction(exitAction)

        self.setGeometry(300, 300, 300, 200)
        self.setWindowTitle('Toolbar')
        self.show()


if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

Π—Π΄Π΅ΡΡŒ практичСски всё Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ статусбару.

ОбъСдиняя всС вмСстС

Π’ послСднСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ этого Ρ€Π°Π·Π΄Π΅Π»Π° ΠΌΡ‹ создадим строку мСню, панСль инструмСнтов ΠΈ ΡΡ‚Π°Ρ‚ΡƒΡΠ½ΡƒΡŽ строку. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ создадим Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚.

#!/usr/bin/python3
# -*- coding: utf-8 -*-

import sys
from PyQt5.QtWidgets import QMainWindow, QTextEdit, QAction, QApplication
from PyQt5.QtGui import QIcon


class Example(QMainWindow):

    def __init__(self):
        super().__init__()

        self.initUI()


    def initUI(self):

        textEdit = QTextEdit()
        self.setCentralWidget(textEdit)

        exitAction = QAction(QIcon('exit24.png'), 'Exit', self)
        exitAction.setShortcut('Ctrl+Q')
        exitAction.setStatusTip('Exit application')
        exitAction.triggered.connect(self.close)

        self.statusBar()

        menubar = self.menuBar()
        fileMenu = menubar.addMenu('&File')
        fileMenu.addAction(exitAction)

        toolbar = self.addToolBar('Exit')
        toolbar.addAction(exitAction)

        self.setGeometry(300, 300, 350, 250)
        self.setWindowTitle('Main window')
        self.show()


if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° создаСт скСлСт классичСского прилоТСния с графичСским интСрфСйсом с мСню, Ρ‚ΡƒΠ»Π±Π°Ρ€ΠΎΠΌ ΠΈ статусбаром.

textEdit = QTextEdit()
self.setCentralWidget(textEdit)

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ создаСм Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ рСдактирования тСкста. ΠœΡ‹ Π΅Π³ΠΎ Π½Π°Π·Π½Π°Ρ‡Π°Π΅ΠΌ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΌ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠΌ QMainWindow. Π¦Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ всС пространство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ.

Π’ этой части ΡƒΡ€ΠΎΠΊΠ° PyQt5, ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ с мСню, панСлью инструмСнтов, строкой состояния ΠΈ Π³Π»Π°Π²Π½Ρ‹ΠΌ ΠΎΠΊΠ½ΠΎΠΌ прилоТСния.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ графичСского интСрфСйса Π½Π° Python 3 с Tkinter ~ PythonRu

Π’ этом ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ графичСскиС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ интСрфСйсы, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π°Π·Π±ΠΎΡ€Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² графичСского интСрфСйса Python с использованиСм Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Tkinter.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Tkinter установлСна Π² Python Π² качСствС стандартного модуля, поэтому Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ для Π΅Π³ΠΎ использования. Tkinter β€” ΠΎΡ‡Π΅Π½ΡŒ мощная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°. Если Π²Ρ‹ ΡƒΠΆΠ΅ установили Python, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ IDLE, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ IDE, поставляСмой Π² Python, эта IDE написана с использованиСм Tkinter. Π—Π²ΡƒΡ‡ΠΈΡ‚ ΠΊΡ€ΡƒΡ‚ΠΎ!

ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Python 3.7 поэтому, Ссли Π²Ρ‹ всС Π΅Ρ‰Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Python 2.x, Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° Python 3.x, Ссли Π²Ρ‹ Π½Π΅ Π² курсС нюансов измСнСния языка, с Ρ†Π΅Π»ΡŒΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ для запуска Π±Π΅Π· ошибок.

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ вас ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ знания ΠΏΠΎ Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ½ΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ.
ΠœΡ‹ Π½Π°Ρ‡Π½Π΅ΠΌ с создания ΠΎΠΊΠ½Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ поля ΠΈ Ρ‚. Π΄. ПослС этого поэкспСримСнтируСм со своими свойствами, поэтому ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ Π½Π°Ρ‡Π°Ρ‚ΡŒ.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ своСго ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ графичСского интСрфСйса

Для Π½Π°Ρ‡Π°Π»Π°, слСдуСт ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Tkinter ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ Π·Π°Π΄Π°Π΄ΠΈΠΌ Π΅Π³ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅:

from tkinter import *


window = Tk()
window.title("Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ PythonRu")
window.mainloop()

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠŸΡ€Π΅ΠΊΡ€Π°ΡΠ½ΠΎ! НашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.
ПослСдняя строка Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ mainloop. Π­Ρ‚Π° функция Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ бСсконСчный Ρ†ΠΈΠΊΠ» ΠΎΠΊΠ½Π°, поэтому ΠΎΠΊΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΆΠ΄Π°Ρ‚ΡŒ любого взаимодСйствия с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΎ.

Π’ случаС, Ссли Π²Ρ‹ Π·Π°Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ mainloop , для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ отобразится.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° Label

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ тСкст Π² наш ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΡ‹ создадим lbl , с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ класса Label, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

lbl = Label(window, text="ΠŸΡ€ΠΈΠ²Π΅Ρ‚")

Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ установим ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Π² ΠΎΠΊΠ½Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ grid ΠΈ ΡƒΠΊΠ°ΠΆΠ΅ΠΌ Π΅Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

lbl.grid(column=0, row=0)

ΠŸΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

from tkinter import *  
  
  
window = Tk()  
window.title("Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ PythonRu")  
lbl = Label(window, text="ΠŸΡ€ΠΈΠ²Π΅Ρ‚")  
lbl.grid(column=0, row=0)  
window.mainloop()

И Π²ΠΎΡ‚ ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Если функция grid Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½Π°, тСкст Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ.

Настройка Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈ ΡˆΡ€ΠΈΡ„Ρ‚Π° тСкста

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ ΡˆΡ€ΠΈΡ„Ρ‚ тСкста ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΡ‚ΠΈΠ»ΡŒ ΡˆΡ€ΠΈΡ„Ρ‚Π°. Для этого ΠΏΠ΅Ρ€Π΅Π΄Π°ΠΉΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ font Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

lbl = Label(window, text="ΠŸΡ€ΠΈΠ²Π΅Ρ‚", font=("Arial Bold", 50))

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ font ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ Π»ΡŽΠ±ΠΎΠΌΡƒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρƒ, для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ ΡˆΡ€ΠΈΡ„Ρ‚, ΠΎΠ½ примСняСтся Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ Label.

ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ, Π½ΠΎ стандартноС ΠΎΠΊΠ½ΠΎ слишком ΠΌΠ°Π»ΠΎ. Как насчСт настройки Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΎΠΊΠ½Π°?

Настройка Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΎΠΊΠ½Π° прилоТСния

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠΊΠ½Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ geometry ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

window.geometry('400x250')

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅ строкС устанавливаСтся ΠΎΠΊΠ½ΠΎ ΡˆΠΈΡ€ΠΈΠ½ΠΎΠΉ Π΄ΠΎ 400 пиксСлСй ΠΈ высотой Π΄ΠΎ 250 пиксСлСй.

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ большС Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² GUI, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ обрабатываСтся Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΎΠΊ.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° Button

НачнСм с добавлСния ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² ΠΎΠΊΠ½ΠΎ. Кнопка создаСтся ΠΈ добавляСтся Π² ΠΎΠΊΠ½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΌΠ΅Ρ‚ΠΊΠ°:

btn = Button(window, text="НС Π½Π°ΠΆΠΈΠΌΠ°Ρ‚ΡŒ!")
btn.grid(column=1, row=0)

Наш ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

from tkinter import *  
  

window = Tk()  
window.title("Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ PythonRu")  
window.geometry('400x250')  
lbl = Label(window, text="ΠŸΡ€ΠΈΠ²Π΅Ρ‚", font=("Arial Bold", 50))  
lbl.grid(column=0, row=0)  
btn = Button(window, text="НС Π½Π°ΠΆΠΈΠΌΠ°Ρ‚ΡŒ!")  
btn.grid(column=1, row=0)  
window.mainloop()

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ:

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ столбСц ΠΎΠΊΠ½Π°, Ρ‡Ρ‚ΠΎ Ρ€Π°Π²Π½ΠΎ 1. Если Π²Ρ‹ Π·Π°Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈ помСститС ΠΊΠ½ΠΎΠΏΠΊΡƒ Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ столбцС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π²Π΅Π½ 0, ΠΎΠ½ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ½ΠΎΠΏΠΊΡƒ.

ИзмСнСниС Ρ†Π²Π΅Ρ‚Π° тСкста ΠΈ Ρ„ΠΎΠ½Π° Ρƒ Button

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ†Π²Π΅Ρ‚ тСкста ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈΠ»ΠΈ любого Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ свойство fg.
ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ†Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π° любого Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ свойство bg.

btn = Button(window, text="НС Π½Π°ΠΆΠΈΠΌΠ°Ρ‚ΡŒ!", bg="black", fg="red")

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ссли Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅, Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ событиС наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ Π΅Ρ‰Π΅ Π½Π΅ написано.

Кнопка Click

Для Π½Π°Ρ‡Π°Π»Π°, ΠΌΡ‹ запишСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ:

def clicked():
    lbl.configure(text="Π― ΠΆΠ΅ просил...")

Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠΌ Π΅Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΡƒΠΊΠ°Π·Π°Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ β€‹β€‹Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ:

btn = Button(window, text="НС Π½Π°ΠΆΠΈΠΌΠ°Ρ‚ΡŒ!", command=clicked)

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΌΡ‹ пишСм clicked, Π° Π½Π΅ clicked()с ΠΊΡ€ΡƒΠ³Π»Ρ‹ΠΌΠΈ скобками. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

from tkinter import *  
  
  
def clicked():  
    lbl.configure(text="Π― ΠΆΠ΅ просил...")  
  
  
window = Tk()  
window.title("Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ PythonRu")  
window.geometry('400x250')  
lbl = Label(window, text="ΠŸΡ€ΠΈΠ²Π΅Ρ‚", font=("Arial Bold", 50))  
lbl.grid(column=0, row=0)  
btn = Button(window, text="НС Π½Π°ΠΆΠΈΠΌΠ°Ρ‚ΡŒ!", command=clicked)  
btn.grid(column=1, row=0)  
window.mainloop()

ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, ΠΊΠ°ΠΊ ΠΈ оТидалось, Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠšΡ€ΡƒΡ‚ΠΎ!

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄Π° с использованиСм класса Entry (тСкстовоС ΠΏΠΎΠ»Π΅ Tkinter)

Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… GUI Python ΠΌΡ‹ ознакомились со способами добавлСния простых Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ², Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Π²Π²ΠΎΠ΄, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ класс Tkinter Entry (тСкстовоС ΠΏΠΎΠ»Π΅ Tkinter).
Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ тСкстовоС ΠΏΠΎΠ»Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ класса Tkinter Entry ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

txt = Entry(window, width=10)

Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² ΠΎΠΊΠ½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ grid.
НашС ΠΎΠΊΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

from tkinter import *  
  
  
def clicked():  
    lbl.configure(text="Π― ΠΆΠ΅ просил...")  
  
  
window = Tk()  
window.title("Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ PythonRu")  
window.geometry('400x250')  
lbl = Label(window, text="ΠŸΡ€ΠΈΠ²Π΅Ρ‚")  
lbl.grid(column=0, row=0)  
txt = Entry(window,width=10)  
txt.grid(column=1, row=0)  
btn = Button(window, text="НС Π½Π°ΠΆΠΈΠΌΠ°Ρ‚ΡŒ!", command=clicked)  
btn.grid(column=2, row=0)  
window.mainloop()

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ссли Π²Ρ‹ Π½Π°ΠΆΠΌΠ΅Ρ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ, ΠΎΠ½Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Ρ‚ΠΎ ΠΆΠ΅ самоС староС сообщСниС, Π½ΠΎ Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ с ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ тСкста Π² Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ Entry?

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ тСкст Π²Π²ΠΎΠ΄Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ get. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ для Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

def clicked():
    res = "ΠŸΡ€ΠΈΠ²Π΅Ρ‚ {}".format(txt.get())
    lbl.configure(text=res)

Если Π²Ρ‹ Π½Π°ΠΆΠΌΠ΅Ρ‚Π΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ β€” появится тСкст Β«ΠŸΡ€ΠΈΠ²Π΅Ρ‚ Β» вмСстС с Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΌ тСкстом Π² Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π΅ записи. Π’ΠΎΡ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄:

from tkinter import *  
  
  
def clicked():  
    res = "ΠŸΡ€ΠΈΠ²Π΅Ρ‚ {}".format(txt.get())  
    lbl.configure(text=res)  
  
  
window = Tk()  
window.title("Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ PythonRu")  
window.geometry('400x250')  
lbl = Label(window, text="ΠŸΡ€ΠΈΠ²Π΅Ρ‚")  
lbl.grid(column=0, row=0)  
txt = Entry(window,width=10)  
txt.grid(column=1, row=0)  
btn = Button(window, text="Клик!", command=clicked)  
btn.grid(column=2, row=0)  
window.mainloop()

ЗапуститС Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

ΠŸΡ€Π΅ΠΊΡ€Π°ΡΠ½ΠΎ!

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ запускаСм ΠΊΠΎΠ΄, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ Π²Π²ΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ фокус Π½Π° Π²Π²ΠΎΠ΄ тСкста, Π½ΠΎ ΠΊΠ°ΠΊ насчСт автоматичСской настройки фокуса?

Установка фокуса Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° Π²Π²ΠΎΠ΄Π°

Π—Π΄Π΅ΡΡŒ всС ΠΎΡ‡Π΅Π½ΡŒ просто, вСдь всС, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, β€” это Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ focus:

txt.focus()

Когда Π²Ρ‹ запуститС свой ΠΊΠΎΠ΄, Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ Π²Π²ΠΎΠ΄Π° Π² фокусС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ сразу Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ тСкст.

ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ Π²Π²ΠΎΠ΄Π°

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ Π²Π²ΠΎΠ΄Π°, ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ свойство состояния:

txt = Entry(window,width=10, state='disabled')

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π½Π΅ смоТСтС ввСсти ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ тСкст.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° Combobox

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ поля с Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅ΠΌ списком, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ класс Combobox ΠΈΠ· ttk ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

from tkinter.ttk import Combobox


combo = Combobox(window)

Π—Π°Ρ‚Π΅ΠΌ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ свои значСния Π² ΠΏΠΎΠ»Π΅ со списком.

from tkinter import *  
from tkinter.ttk import Combobox  
  
  
window = Tk()  
window.title("Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ PythonRu")  
window.geometry('400x250')  
combo = Combobox(window)  
combo['values'] = (1, 2, 3, 4, 5, "ВСкст")  
combo.current(1)  
combo.grid(column=0, row=0)  
window.mainloop()

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅ с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, ΠΌΡ‹ добавляСм элСмСнты combobox, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ значСния tuple.
Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ элСмСнт, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ индСкс Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ элСмСнта Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.
Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ элСмСнт select, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ get Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

combo.get()

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° Checkbutton (чСкбокса)

Π‘ Ρ†Π΅Π»ΡŒΡŽ создания Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° checkbutton, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ класс Checkbutton:

from tkinter.ttk import Checkbutton


chk = Checkbutton(window, text='Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ')

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π² Π΅Π³ΠΎ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ var Π² Checkbutton:

from tkinter import *  
from tkinter.ttk import Checkbutton  
  
  
window = Tk()  
window.title("Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ PythonRu")  
window.geometry('400x250')  
chk_state = BooleanVar()  
chk_state.set(True)  
chk = Checkbutton(window, text='Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ', var=chk_state)  
chk.grid(column=0, row=0)  
window.mainloop()

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Установка состояния Checkbutton

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ создаСм ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚ΠΈΠΏΠ° BooleanVar, которая Π½Π΅ являСтся стандартной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Python, это пСрСмСнная Tkinter, Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ Π΅Π΅ классу Checkbutton, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ состояниС чСкбокса ΠΊΠ°ΠΊ True Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ для BooleanVar Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ false, Ρ‡Ρ‚ΠΎ Π±Ρ‹ чСкбокс Π½Π΅ Π±Ρ‹Π» ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½.
Π’Π°ΠΊ ΠΆΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ IntVar вмСсто BooleanVar ΠΈ установитС значСния 0 ΠΈ 1.

chk_state = IntVar()
chk_state.set(0) 
chk_state.set(1) 

Π­Ρ‚ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π΄Π°ΡŽΡ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Ρ‡Ρ‚ΠΎ ΠΈ BooleanVar.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² Radio Button

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ radio ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ класс RadioButton:

rad1 = Radiobutton(window,text='ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ', value=1)

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ value для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ radio ΠΊΠ½ΠΎΠΏΠΊΠΈ с ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, ΠΈΠ½Π°Ρ‡Π΅ ΠΎΠ½ΠΈ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

from tkinter import *  
from tkinter.ttk import Radiobutton  
  
  
window = Tk()  
window.title("Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ PythonRu")  
window.geometry('400x250')  
rad1 = Radiobutton(window, text='ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ', value=1)  
rad2 = Radiobutton(window, text='Π’Ρ‚ΠΎΡ€ΠΎΠΉ', value=2)  
rad3 = Radiobutton(window, text='Π’Ρ€Π΅Ρ‚ΠΈΠΉ', value=3)  
rad1.grid(column=0, row=0)  
rad2.grid(column=1, row=0)  
rad3.grid(column=2, row=0)  
window.mainloop()

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ command любой ΠΈΠ· этих ΠΊΠ½ΠΎΠΏΠΎΠΊ для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ Π½Π° Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ, ΠΎΠ½Π° запустит ΠΊΠΎΠ΄ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.
Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

rad1 = Radiobutton(window,text='ΠŸΠ΅Ρ€Π²Π°Ρ', value=1, command=clicked)

def clicked():
    

Достаточно Π»Π΅Π³ΠΊΠΎ!

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ значСния Radio Button (Π˜Π·Π±Ρ€Π°Π½Π½Π°Ρ Radio Button)

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Ρ‹Π±Ρ€Π°Π½Π½ΡƒΡŽ radio ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΈΠ»ΠΈ Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

from tkinter import *  
from tkinter.ttk import Radiobutton  
  
  
def clicked():  
    lbl.configure(text=selected.get())  
  
  
window = Tk()  
window.title("Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ PythonRu")  
window.geometry('400x250')  
selected = IntVar()  
rad1 = Radiobutton(window,text='ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ', value=1, variable=selected)  
rad2 = Radiobutton(window,text='Π’Ρ‚ΠΎΡ€ΠΎΠΉ', value=2, variable=selected)  
rad3 = Radiobutton(window,text='Π’Ρ€Π΅Ρ‚ΠΈΠΉ', value=3, variable=selected)  
btn = Button(window, text="Клик", command=clicked)  
lbl = Label(window)  
rad1.grid(column=0, row=0)  
rad2.grid(column=1, row=0)  
rad3.grid(column=2, row=0)  
btn.grid(column=3, row=0)  
lbl.grid(column=0, row=1)  
window.mainloop()

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚Π΅ radio button, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° ScrolledText (тСкстовая ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Tkinter)

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ ScrolledText, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ класс ScrolledText:

from tkinter import scrolledtext


txt = scrolledtext.ScrolledText(window,width=40,height=10)

Π—Π΄Π΅ΡΡŒ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΈ высоту ScrolledText, ΠΈΠ½Π°Ρ‡Π΅ ΠΎΠ½ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ всС ΠΎΠΊΠ½ΠΎ.

from tkinter import *  
from tkinter import scrolledtext  
  
  
window = Tk()  
window.title("Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ PythonRu")  
window.geometry('400x250')  
txt = scrolledtext.ScrolledText(window, width=40, height=10)  
txt.grid(column=0, row=0)  
window.mainloop()

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Настройка содСрТимого Scrolledtext

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ insert, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ содСрТимоС Scrolledtext:

txt.insert(INSERT, 'ВСкстовоС ΠΏΠΎΠ»Π΅')

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅/ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° содСрТимого Scrolledtext

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ содСрТимоС Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ delete:

txt.delete(1.0, END)  

ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ!

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΎΠΊΠ½Π° с сообщСниСм

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ ΠΎΠΊΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Tkinter, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ messagebox ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

from tkinter import messagebox


messagebox.showinfo('Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ', 'ВСкст')

Π”ΠΎΠ²ΠΎΠ»ΡŒΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ! Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ ΠΎΠΊΠ½ΠΎ сообщСний ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.

from tkinter import *  
from tkinter import messagebox  
  
  
def clicked():  
    messagebox.showinfo('Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ', 'ВСкст')  
  
  
window = Tk()  
window.title("Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ PythonRu")  
window.geometry('400x250')  
btn = Button(window, text='Клик', command=clicked)  
btn.grid(column=0, row=0)  
window.mainloop()

Когда Π²Ρ‹ Π½Π°ΠΆΠΌΠ΅Ρ‚Π΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ, появится ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ.

Показ сообщСний ΠΎ прСдупрСТдСниях ΠΈ ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰Π΅Π΅ сообщСниС ΠΈΠ»ΠΈ сообщСниС ΠΎΠ± ошибкС Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. ЕдинствСнноС, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒβ€”ΡΡ‚ΠΎ функция сообщСния.

messagebox.showwarning('Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ', 'ВСкст')  
messagebox.showerror('Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ', 'ВСкст')  

Показ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΎΠΊΠΎΠ½ с Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ сообщСниС β€œΠ΄Π°/нСт”, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ messagebox:

from tkinter import messagebox


res = messagebox.askquestion('Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ', 'ВСкст')
res = messagebox.askyesno('Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ', 'ВСкст')
res = messagebox.askyesnocancel('Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ', 'ВСкст')
res = messagebox.askokcancel('Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ', 'ВСкст')
res = messagebox.askretrycancel('Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ', 'ВСкст')

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΡΡ‚ΠΈΠ»ΡŒ сообщСния согласно вашим потрСбностям. ΠŸΡ€ΠΎΡΡ‚ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ строку Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ showinfo Π½Π° ΠΎΠ΄Π½Ρƒ ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΠΈ запуститС скрипт. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, какая ΠΊΠ½ΠΎΠΏΠΊΠ° Π½Π°ΠΆΠ°Ρ‚Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°.

Если Π²Ρ‹ ΠΊΠ»ΠΈΠΊΠ½Π΅Ρ‚Π΅ OK, yes ΠΈΠ»ΠΈ retry, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ станСт True, Π° Ссли Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚Π΅ no ΠΈΠ»ΠΈ cancel, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ False.
ЕдинствСнной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ, которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Ρ‚Ρ€Π΅Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, являСтся функция askyesnocancel; ΠΎΠ½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ True/False/None.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ SpinBox (Π’ΠΈΠ΄ΠΆΠ΅Ρ‚ спинбокс)

Для создания Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° спинбокса, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ класс Spinbox:

spin = Spinbox(window, from_=0, to=100)

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ создаСм Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ Spinbox, ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ from ΠΈ to, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ².
ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΡˆΠΈΡ€ΠΈΠ½Ρƒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° width:

spin = Spinbox(window, from_=0, to=100, width=5)

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ:

from tkinter import *  
  
  
window = Tk()  
window.title("Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ PythonRu")  
window.geometry('400x250')  
spin = Spinbox(window, from_=0, to=100, width=5)  
spin.grid(column=0, row=0)  
window.mainloop()

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ числа для Spinbox, вмСсто использования всСго Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

spin = Spinbox(window, values=(3, 8, 11), width=5)

Π’ΠΈΠ΄ΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ эти 3 числа: 3, 8 ΠΈ 11.

Π—Π°Π΄Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Spinbox

Π’ случаС, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Spinbox, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ textvariable ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

var = IntVar()
var.set(36)
spin = Spinbox(window, from_=0, to=100, width=5, textvariable=var)

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ссли Π²Ρ‹ запуститС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΎΠ½Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ 36 ΠΊΠ°ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Spinbox.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° Progressbar

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ класс progressbar :

from tkinter.ttk import Progressbar


bar = Progressbar(window, length=200)

УстановитС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ progressbar Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

bar['value'] = 70

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° основС любого процСсса ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ.

ИзмСнСниС Ρ†Π²Π΅Ρ‚Π° Progressbar

ИзмСнСниС Ρ†Π²Π΅Ρ‚Π° Progressbar Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ слоТно. Π‘Π½Π°Ρ‡Π°Π»Π° Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΡ‚ΠΈΠ»ΡŒ ΠΈ Π·Π°Π΄Π°Ρ‚ΡŒ Ρ†Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π°, Π° Π·Π°Ρ‚Π΅ΠΌ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ созданный ΡΡ‚ΠΈΠ»ΡŒ Π½Π° Progressbar. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

from tkinter import *  
from tkinter.ttk import Progressbar  
from tkinter import ttk  
  
  
window = Tk()  
window.title("Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ PythonRu")  
window.geometry('400x250')  
style = ttk.Style()  
style.theme_use('default')  
style.configure("black.Horizontal.TProgressbar", background='black')  
bar = Progressbar(window, length=200,)  
bar['value'] = 70  
bar.grid(column=0, row=0)  
window.mainloop()

И Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ поля Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ„Π°ΠΉΠ»Π°

Для добавлСния поля с Ρ„Π°ΠΉΠ»ΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ класс filedialog:

from tkinter import filedialog


file = filedialog.askopenfilename()

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚Π΅ Ρ„Π°ΠΉΠ», Π½Π°ΠΆΠΌΠΈΡ‚Π΅ β€œΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒβ€; пСрСмСнная Ρ„Π°ΠΉΠ»Π° Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ этот ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ²:

files = filedialog.askopenfilenames()

Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° Ρ„Π°ΠΉΠ»ΠΎΠ² (Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° Ρ„Π°ΠΉΠ»ΠΎΠ²)

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ указания Ρ‚ΠΈΠΏΠ° Ρ„Π°ΠΉΠ»ΠΎΠ² доступна ΠΏΡ€ΠΈ использовании ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° filetypes, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΡ€ΠΈ этом Π²Π°ΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Π² tuples.

file = filedialog.askopenfilename(filetypes = (("Text files","*.txt"),("all files","*.*")))

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ askdirectory :

dir = filedialog.askdirectory()

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ для Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Ρ„Π°ΠΉΠ»Π°, ΡƒΠΊΠ°Π·Π°Π² initialdir ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

from os import path
file = filedialog.askopenfilename(initialdir= path.dirname(__file__))

Π›Π΅Π³ΠΊΠΎ!

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°Π½Π΅Π»ΠΈ мСню

Для добавлСния ΠΏΠ°Π½Π΅Π»ΠΈ мСню, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ класс menu:

from tkinter import Menu


menu = Menu(window)
menu.add_command(label='Π€Π°ΠΉΠ»')
window.config(menu=menu)

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ создаСм мСню, Π·Π°Ρ‚Π΅ΠΌ добавляСм наш ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡƒΠ½ΠΊΡ‚ подмСню. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ мСню Π² любоС мСню с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ add_cascade() Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

menu.add_cascade(label='Автор', menu=new_item)

Наш ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

from tkinter import *  
from tkinter import Menu  
  
  
window = Tk()  
window.title("Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ PythonRu")  
window.geometry('400x250')  
menu = Menu(window)  
new_item = Menu(menu)  
new_item.add_command(label='Новый')  
menu.add_cascade(label='Π€Π°ΠΉΠ»', menu=new_item)  
window.config(menu=menu)  
window.mainloop()

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню, сколько Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅.

from tkinter import *  
  
  
window = Tk()  
window.title("Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ PythonRu")  
window.geometry('400x250')  
menu = Menu(window)  
new_item = Menu(menu)  
new_item.add_command(label='Новый')  
new_item.add_separator()  
new_item.add_command(label='Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ')  
menu.add_cascade(label='Π€Π°ΠΉΠ»', menu=new_item)  
window.config(menu=menu)  
window.mainloop()

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ добавляСм Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡƒΠ½ΠΊΡ‚ мСню β€œΠ˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒβ€ с Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ мСню. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚ΠΈΡ€Π½ΡƒΡŽ линию Π² Π½Π°Ρ‡Π°Π»Π΅, Ссли Π²Ρ‹ Π½Π°ΠΆΠΌΠ΅Ρ‚Π΅ Π½Π° эту строку, ΠΎΠ½Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ мСню Π² нСбольшом ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΎΠΊΠ½Π΅.

МоТно ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ tearoff ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

new_item = Menu(menu, tearoff=0)

ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ new_item, ΠΊΠ°ΠΊ Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈ ΠΎΠ½ большС Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚ΠΈΡ€Π½ΡƒΡŽ линию.
Π’Ρ‹ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ввСсти любой ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π½Π° любой элСмСнт мСню, задавая свойство ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

new_item.add_command(label='Новый', command=clicked)

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° Notebook (Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»Π°Π΄ΠΊΠΎΠΉ)

Для ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ управлСния Π²ΠΊΠ»Π°Π΄ΠΊΠ°ΠΌΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

  • Для Π½Π°Ρ‡Π°Π»Π°, создаСтся элСмСнт управлСния Π²ΠΊΠ»Π°Π΄ΠΊΠΎΠΉ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ класса Notebook .
  • Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ класс Frame.
  • Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ эту Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Π² элСмСнт управлСния Π²ΠΊΠ»Π°Π΄ΠΊΠ°ΠΌΠΈ.
  • Π—Π°ΠΏΠ°ΠΊΡƒΠΉΡ‚Π΅ элСмСнт управлСния Π²ΠΊΠ»Π°Π΄ΠΊΠΎΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ стал Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌ Π² ΠΎΠΊΠ½Π΅.
from tkinter import *  
from tkinter import ttk  
  
  
window = Tk()  
window.title("Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ PythonRu")  
window.geometry('400x250')  
tab_control = ttk.Notebook(window)  
tab1 = ttk.Frame(tab_control)  
tab_control.add(tab1, text='ΠŸΠ΅Ρ€Π²Π°Ρ')  
tab_control.pack(expand=1, fill='both')  
window.mainloop()

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΊΠ»Π°Π΄ΠΎΠΊ, сколько Π½ΡƒΠΆΠ½ΠΎ.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡƒ

ПослС создания Π²ΠΊΠ»Π°Π΄ΠΎΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ этих Π²ΠΊΠ»Π°Π΄ΠΎΠΊ, Π½Π°Π·Π½Π°Ρ‡ΠΈΠ² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅ свойство Π½ΡƒΠΆΠ½ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅.

from tkinter import *  
from tkinter import ttk  
  
  
window = Tk()  
window.title("Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ PythonRu")  
window.geometry('400x250')  
tab_control = ttk.Notebook(window)  
tab1 = ttk.Frame(tab_control)  
tab2 = ttk.Frame(tab_control)  
tab_control.add(tab1, text='ΠŸΠ΅Ρ€Π²Π°Ρ')  
tab_control.add(tab2, text='Вторая')  
lbl1 = Label(tab1, text='Π’ΠΊΠ»Π°Π΄ΠΊΠ° 1')  
lbl1.grid(column=0, row=0)  
lbl2 = Label(tab2, text='Π’ΠΊΠ»Π°Π΄ΠΊΠ° 2')  
lbl2.grid(column=0, row=0)  
tab_control.pack(expand=1, fill='both')  
window.mainloop()

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° для Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² (Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅)

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ отступы для элСмСнтов управлСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ выглядСли Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ с использованиСм свойств padx ΠΈpady.

ΠŸΠ΅Ρ€Π΅Π΄Π°ΠΉΡ‚Π΅ padx ΠΈ pady Π»ΡŽΠ±ΠΎΠΌΡƒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρƒ ΠΈ Π·Π°Π΄Π°ΠΉΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

lbl1 = Label(tab1, text= 'label1', padx=5, pady=5)

Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ просто!

Π’ этом ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² GUI Python с использованиСм Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Tkinter. Π’Π°ΠΊ ΠΆΠ΅ рассмотрСли основныС аспСкты Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ графичСского интСрфСйса Python. НС стоит Π½Π° этом ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒΡΡ. НСт ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΠ° ΠΈΠ»ΠΈ ΠΊΠ½ΠΈΠ³ΠΈ, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ всС Π΄Π΅Ρ‚Π°Π»ΠΈ. НадСюсь, эти ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π±Ρ‹Π»ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ для вас.

ГрафичСский интСрфСйс Π½Π° Python Π·Π° 5 ΠΌΠΈΠ½ΡƒΡ‚

Python Π»Π΅Π³ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Π’ Π½Π΅ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ для Ρ‡Π΅Π³ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ. И это Π΅Π³ΠΎ основноС прСимущСство. Из Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… строк ΠΊΠΎΠ΄Π° Π²Ρ‹ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ сдСлаСтС. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ скрипты для Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ пользования ΠΈΠ»ΠΈ для тСхничСски ΠΏΠΎΠ΄ΠΊΠΎΠ²Π°Π½Π½ΠΎΠΉ Π°ΡƒΠ΄ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, Ρ‚ΠΎ Π²Π°ΠΌ Π΄Π°ΠΆΠ΅ Π½Π΅ придСтся Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ графичСском интСрфСйсС.

Однако ΠΈΠ½ΠΎΠ³Π΄Π° ваша цСлСвая аудитория Π½Π΅ сильно ΠΏΠΎΠ΄ΠΊΠΎΠ²Π°Π½Π° тСхничСски. Π›ΡŽΠ΄ΠΈ Π½Π΅ ΠΏΡ€ΠΎΡ‚ΠΈΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ваши скрипты Π½Π° Python Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€ ΠΏΠΎΠΊΠ° ΠΈΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° ΠΎΠ΄Π½Ρƒ строку ΠΊΠΎΠ΄Π°. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС скриптов ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Π±ΡƒΠ΄Π΅Ρ‚ нСдостаточно. Π’ ΠΈΠ΄Π΅Π°Π»Π΅ Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ графичСский интСрфСйс. ЦСль этого поста ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Python.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для графичСского интСрфСйса

По сути, Π΅ΡΡ‚ΡŒ 3 большиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Python для графичСского интСрфСйса; Tkinter, wxPython ΠΈ PyQT. Рассматривая ΠΈΡ…, я Π½Π΅ нашСл Ρ‚Π°ΠΌ Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΈΠ· Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠ½Π΅ нравится Π² Python. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Python, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π°Π±ΡΡ‚Ρ€Π°Π³ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΎΡ‚ супСр-тСхничСских ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ². Если Π±Ρ‹ ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, я ΠΌΠΎΠ³ Π±Ρ‹ с Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ успСхом Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Java ΠΈΠ»ΠΈ .Net.



Π‘Ρ‚Π°Ρ‚ΡŒΡ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Π° ΠΏΡ€ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ EDISON Software, которая заботится ΠΎ Π·Π΄ΠΎΡ€ΠΎΠ²ΡŒΠ΅ программистов ΠΈ ΠΈΡ… Π·Π°Π²Ρ‚Ρ€Π°ΠΊΠ΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС Π½Π° Π·Π°ΠΊΠ°Π·.

Однако, ΠΊ ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, я наткнулся Π½Π° Ρ‡Π΅Ρ‚Π²Ρ‘Ρ€Ρ‚Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» ΠΌΠ½Π΅ ΠΏΠΎ Π΄ΡƒΡˆΠ΅. Π­Ρ‚ΠΎ PySimpleGUI, я Π΄ΠΎ сих ΠΏΠΎΡ€ Π΅ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡΡŒ. Как Π½ΠΈ странно, эта Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ всС 3 популярныС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… шла Ρ€Π΅Ρ‡ΡŒ Π²Ρ‹ΡˆΠ΅, Π½ΠΎ ΠΏΡ€ΠΈ этом абстрагируСтся ΠΎΡ‚ супСр тСхничСских ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ²

Π”Π°Π²Π°ΠΉΡ‚Π΅ погрузимся Π² эту Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΈ ΠΈΠ·ΡƒΡ‡ΠΈΠΌ Π΅Π΅, ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Ρ€Π΅ΡˆΠ°Ρ Ρ€Π΅Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π΄Π²Π° ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°

Π― рассказал ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π² своСй ΡΡ‚Π°Ρ‚ΡŒΠ΅ β€œ3 быстрых способа ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² Python”. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π», ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ цСлостности Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс.

  • 3 Quick Ways To Compare Data with Python

По Ρ„Π°ΠΊΡ‚Ρƒ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π΄Π²Π° Ρ„Π°ΠΉΠ»Π° ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для сравнСния Ρ„Π°ΠΉΠ»ΠΎΠ².

Π—Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠΉΡ‚Π΅ графичСский интСрфСйс

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ графичСский интСрфСйс, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот ΠΊΠΎΠ΄:

import PySimpleGUI as sg
layout = [
    [sg.Text('File 1'), sg.InputText(), sg.FileBrowse(),
     sg.Checkbox('MD5'), sg.Checkbox('SHA1')
     ],
    [sg.Text('File 2'), sg.InputText(), sg.FileBrowse(),
     sg.Checkbox('SHA256')
     ],
    [sg.Output(size=(88, 20))],
    [sg.Submit(), sg.Cancel()]
]
window = sg.Window('File Compare', layout)
while True:                             # The Event Loop
    event, values = window.read()
    # print(event, values) #debug
    if event in (None, 'Exit', 'Cancel'):
        break

Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ:

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π»ΠΎΠ³ΠΈΠΊΡƒ

Когда Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс, Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°. Нам просто Π½ΡƒΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π²Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ соотвСтствСнно. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π°:

import PySimpleGUI as sg
import re
import hashlib
def hash(fname, algo):
    if algo == 'MD5':
        hash = hashlib.md5()
    elif algo == 'SHA1':
        hash = hashlib.sha1()
    elif algo == 'SHA256':
        hash = hashlib.sha256()
    with open(fname) as handle: #opening the file one line at a time for memory considerations
        for line in handle:
            hash.update(line.encode(encoding = 'utf-8'))
    return(hash.hexdigest())
layout = [
    [sg.Text('File 1'), sg.InputText(), sg.FileBrowse(),
     sg.Checkbox('MD5'), sg.Checkbox('SHA1')
     ],
    [sg.Text('File 2'), sg.InputText(), sg.FileBrowse(),
     sg.Checkbox('SHA256')
     ],
    [sg.Output(size=(88, 20))],
    [sg.Submit(), sg.Cancel()]
]
window = sg.Window('File Compare', layout)
while True:                             # The Event Loop
    event, values = window.read()
    # print(event, values) #debug
    if event in (None, 'Exit', 'Cancel'):
        break
    if event == 'Submit':
        file1 = file2 = isitago = None
        # print(values[0],values[3])
        if values[0] and values[3]:
            file1 = re.findall('.+:\/.+\.+.', values[0])
            file2 = re.findall('.+:\/.+\.+.', values[3])
            isitago = 1
            if not file1 and file1 is not None:
                print('Error: File 1 path not valid.')
                isitago = 0
            elif not file2 and file2 is not None:
                print('Error: File 2 path not valid.')
                isitago = 0
            elif values[1] is not True and values[2] is not True and values[4] is not True:
                print('Error: Choose at least one type of Encryption Algorithm')
            elif isitago == 1:
                print('Info: Filepaths correctly defined.')
                algos = [] #algos to compare
                if values[1] == True: algos.append('MD5')
                if values[2] == True: algos.append('SHA1')
                if values[4] == True: algos.append('SHA256')
                filepaths = [] #files
                filepaths.append(values[0])
                filepaths.append(values[3])
                print('Info: File Comparison using:', algos)
                for algo in algos:
                    print(algo, ':')
                    print(filepaths[0], ':', hash(filepaths[0], algo))
                    print(filepaths[1], ':', hash(filepaths[1], algo))
                    if hash(filepaths[0],algo) == hash(filepaths[1],algo):
                        print('Files match for ', algo)
                    else:
                        print('Files do NOT match for ', algo)
        else:
            print('Please choose 2 files.')
window.close()

ΠΎΠ½ даст Π½Π°ΠΌ Ρ‚Π°ΠΊΠΎΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Π—Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ мысли

ΠœΠΎΠΆΠ΅Ρ‚ это ΠΈ Π½Π΅ самый красивый ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс, Π½ΠΎ PySimpleGUI позволяСт Π²Π°ΠΌ быстро Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ простыС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ интСрфСйсы Python ΠΈ Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΠΈΠΌΠΈ с ΠΊΠ΅ΠΌ ΡƒΠ³ΠΎΠ΄Π½ΠΎ. Код, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ для этого, прост ΠΈ Π»Π΅Π³ΠΊΠΎ читаСтся. Π£ вас всС Π΅Ρ‰Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° запуска ΠΊΠΎΠ΄Π° для получСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса. Из-Π·Π° этого ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ слоТности с совмСстным использованиСм ΠΊΠΎΠ΄Π°. Π‘ΠΎΠ²Π΅Ρ‚ΡƒΡŽ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ PyInstaller, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ ваш скрипт Π½Π° python Π² .exe Ρ„Π°ΠΉΠ». Π›ΡŽΠ΄ΠΈ смогут Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ просто Π½Π°ΠΆΠ°Π² Π½Π° Π½Π΅Π³ΠΎ Π΄Π²Π°ΠΆΠ΄Ρ‹.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ графичСского интСрфСйса Π½Π° Python с Tkinter. ΠžΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ Python GUI

ГрафичСский интСрфСйс – Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΠ°Ρ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ любого соврСмСнного прилоТСния. Π”Π°ΠΆΠ΅ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π° MS DOS, нСсмотря Π½Π° Ρ‚ΠΎΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Π² Ρ‚Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π°, всС Ρ€Π°Π²Π½ΠΎ Π½Π°Ρ‡Π°Π»ΠΈ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ графичСскиС интСрфСйсы. Π§Π΅Π³ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ стоит Π»Π΅Π³Π΅Π½Π΄Π°Ρ€Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ Norton Commander? А для создания ΠΈΠ³Ρ€ Ρ€Π°Π±ΠΎΡ‚Π° с графичСскими интСрфСйсами Π²ΠΎΠΎΠ±Ρ‰Π΅ являСтся ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½ΠΎΠΉ.

Π’ Python Ρ€Π°Π±ΠΎΡ‚Π° с графичСскими интСрфСйсами осущСствляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Tkinter. Она прСдустановлСна Π² язык, поэтому Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сразу, Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ установки.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ прилоТСния, созданного с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Tkinter – IDLE. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ популярная срСда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для Python.

РСкомСндуСтся ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Python 3.7 для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π½Π°ΡˆΡƒ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Ρ€Π΅Ρ‚ΡŒΡ вСрсия ΠΏΡ€Π΅Ρ‚Π΅Ρ€ΠΏΠ΅Π»Π° Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ сущСствСнныС измСнСния, Ρ‡Ρ‚ΠΎ использованиС Π²Ρ‚ΠΎΡ€ΠΎΠΉ вСрсии ΡƒΠΆΠ΅ Π΄Π°Π»Π΅ΠΊΠΎ ΠΎΡ‚ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования.

Π’ этой инструкции ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ прСдставлСниС ΠΎ Python Ρƒ Вас ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ. ΠœΡ‹ ΠΆΠ΅ Π±ΡƒΠ΄Π΅ΠΌ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π”Π°Π²Π°ΠΉΡ‚Π΅ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ.

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ свой ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ графичСский интСрфСйс

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, Π΅Π΅ слСдуСт ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. ПослС этого ΡƒΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ строки для настройки ΠΎΠΊΠ½Π°.

from tkinter import *

window = Tk()

window.title(Β«Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ PythonΒ»)

window.mainloop()

ВсС, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ создали ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с графичСской ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΎΠΉ. ΠŸΠΎΠ·Π΄Ρ€Π°Π²Π»ΡΠ΅ΠΌ.Β 

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° послСднюю строку. Она содСрТит ΠΌΠ΅Ρ‚ΠΎΠ΄ mainloop(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ window. Она Π½ΡƒΠΆΠ½Π° для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Ρ†ΠΈΠΊΠ»ΠΈΡ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠΊΠ½Π°. Если Π΅Π΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‚ΠΎ ΠΎΠΊΠ½ΠΎ сразу закроСтся, ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚.

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ Label

Окно – это, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, прСкрасно. Но Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Π½Π°ΠΌ Π½Π°Π΄ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π² Π½Π΅ΠΌ ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ надпись? НапримСр, слово Β«ΠŸΡ€ΠΈΠ²Π΅Ρ‚Β». Как это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ?

Π‘Π½Π°Ρ‡Π°Π»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚. Для этого ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ пСрСмСнная (Π² нашСм случаС – lbl) с использованиСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π°.

lbl = Label(window, text=Β»ΠŸΡ€ΠΈΠ²Π΅Ρ‚Β»)

ПослС этого ΠΌΡ‹ Π·Π°Π΄Π°Π΅ΠΌ мСсто, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ наша надпись. Π’ нашСм случаС это Π±ΡƒΠ΄Π΅Ρ‚ самый Π²Π΅Ρ€Ρ… ΠΎΠΊΠ½Π° слСва. БоотвСтствСнно, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅:

lbl.grid(column=0, row=0)

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ эти строки Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄ (Π° Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΈΡ… Π½Π°Π΄ΠΎ послС Ρ‚ΠΎΠΉ строки, Π³Π΄Π΅ задаСтся Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ), получится ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ.

from tkinter import *Β Β 

window = Tk()Β Β 

window.title(Β«Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ PythonΒ»)Β Β 

lbl = Label(window, text=Β»ΠŸΡ€ΠΈΠ²Π΅Ρ‚Β»)Β Β 

lbl.grid(column=0, row=0)Β Β 

window.mainloop()

Π’Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° grid – ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ. Π˜Π½Π°Ρ‡Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚ тСкста, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Π·Π°Ρ…ΠΎΡ‚Π΅Π»ΠΈ.

НастраиваСм Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ ΡˆΡ€ΠΈΡ„Ρ‚ тСкста

Tkinter – гибкая Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°. Π’ Ρ‚ΠΎΠΌ числС, Π² Π½Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ тСкст, задавая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ ΡˆΡ€ΠΈΡ„Ρ‚Π° ΠΈ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€. Для этого Π² скобках ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Label задаСтся свойство font. Π₯арактСристики Π² скобках Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ: сначала – Π½Π°Ρ‡Π΅Ρ€Ρ‚Π°Π½ΠΈΠ΅ ΡˆΡ€ΠΈΡ„Ρ‚Π°, Π° ΠΏΠΎΡ‚ΠΎΠΌ – Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€. НапримСр, Ссли ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΡˆΡ€ΠΈΡ„Ρ‚ Β«Arial BoldΒ» 50 Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, Ρ‚ΠΎ ΠΎΠΊΠ½ΠΎ с нашСй надписью Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΆΠ΅ поинтСрСснСС.

lbl = Label(window, text=Β»ΠŸΡ€ΠΈΠ²Π΅Ρ‚Β», font=(Β«Arial BoldΒ», 50))

Π­Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Π² Ρ‚ΠΎΠΌ числС, ΠΈ для Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ². Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ надписи. Если Π² Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π΅ Π΅ΡΡ‚ΡŒ ΡˆΡ€ΠΈΡ„Ρ‚, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ.

НастраиваСм Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΎΠΊΠ½Π° прилоТСния

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρƒ нас ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»Π°ΡΡŒ отличная, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ. Но, скаТитС, Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚. ВсС ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, окошко Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ побольшС. Π§Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ?

Π§Ρ‚ΠΎΠ±Ρ‹ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ geometry с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ Π² Π²ΠΈΠ΄Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΎΠΊΠ½Π°, записанных Π² Π²ΠΈΠ΄Π΅ строки Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Β«ΡˆΠΈΡ€ΠΈΠ½Π°Β»Ρ…Β«Π²Ρ‹ΡΠΎΡ‚Π°Β».

НапримСр, Ρ‚Π°ΠΊ.

window.geometry(β€˜500Γ—350’)

Π­Ρ‚Π° строка Π΄Π΅Π»Π°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠΊΠ½Π° ΠΏΠΎ ΡˆΠΈΡ€ΠΈΠ½Π΅ 500 пиксСлСй, Π° ΠΏΠΎ высотС – 250.

Π’ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ слоТного. Но этого явно нСдостаточно для создания Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. НапримСр, Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΎΠΊ. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½Π° нашС ΠΎΠΊΠ½ΠΎ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π΅Π΅ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅.

ДобавляСм Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ Button

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ. Π§Ρ‚ΠΎΠ±Ρ‹ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ класса, Π° Π² свойствах Π·Π°Π΄Π°Ρ‚ΡŒ тСкст, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π° Π½Π΅ΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ.

btn = Button(window, text=»НС Π½Π°ΠΆΠΈΠΌΠ°Ρ‚ΡŒ!Β»)

btn.grid(column=1, row=0)

ΠœΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΊΠ½ΠΎΠΏΠΊΡƒ послС ΠΌΠ΅Ρ‚ΠΊΠΈ Π² ΠΊΠΎΠ΄Π΅. Π’ Ρ†Π΅Π»ΠΎΠΌ, Ρƒ нас ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»Π°ΡΡŒ такая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°.

from tkinter import *Β Β 

window = Tk()Β Β 

window.title(Β«Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ PythonΒ»)Β Β 

window.geometry(β€˜400Γ—250’)Β Β 

lbl = Label(window, text=Β»ΠŸΡ€ΠΈΠ²Π΅Ρ‚Β», font=(Β«Arial BoldΒ», 50))Β Β 

lbl.grid(column=0, row=0)Β Β 

btn = Button(window, text=»НС Π½Π°ΠΆΠΈΠΌΠ°Ρ‚ΡŒ!Β»)Β Β 

btn.grid(column=1, row=0)Β Β 

window.mainloop()

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ этот ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½, получится ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π² ΠΊΠΎΠ΄Π΅ Π²Ρ‹ΡˆΠ΅ ΠΌΡ‹ ΡƒΠΊΠ°Π·Π°Π»ΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ столбцС. Но ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ индСксация начинаСтся с нуля, Ρ‚ΠΎ, соотвСтствСнно, ΠΌΡ‹ написали индСкс столбца 1. Если ΠΆΠ΅ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ 0,0, Ρ‚ΠΎ ΠΎΠ½ просто Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ надпись.

Как ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ†Π²Π΅Ρ‚ тСкста ΠΈ Ρ„ΠΎΠ½Π° Ρƒ Button?

ΠšΠ°ΡΡ‚ΠΎΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΊΠ½ΠΎΠΏΠΎΠΊ Π½Π΅ ограничиваСтся ΠΎΠ΄Π½ΠΈΠΌ лишь ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈ начСртания ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ². НапримСр, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Ρ‡Π΅Ρ€Π½ΠΎΠΉ, Π° Π±ΡƒΠΊΠ²Ρ‹ Π½Π° Π½Π΅ΠΉ – красными. Для этого Π½Π°Π΄ΠΎ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ свойства: fg ΠΈ bg. Они ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ†Π²Π΅Ρ‚ надписи ΠΈ Ρ„ΠΎΠ½ соотвСтствСнно.

Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ с Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΈ Π½Π°Ρ‡Π΅Ρ€Ρ‚Π°Π½ΠΈΠ΅ΠΌ ΡˆΡ€ΠΈΡ„Ρ‚Π°, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этих свойств ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ внСшний Π²ΠΈΠ΄ любого Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ элСмСнта, Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ½ΠΎΠΏΠΊΠΈ.Β 

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΡ‹ сдСлали надпись ΠΊΠ½ΠΎΠΏΠΊΠΈ красной Π½Π° Ρ‡Π΅Ρ€Π½ΠΎΠΌ Ρ„ΠΎΠ½Π΅.

btn = Button(window, text=»НС Π½Π°ΠΆΠΈΠΌΠ°Ρ‚ΡŒ!Β», bg=Β»blackΒ», fg=Β»redΒ»)

Π₯ΠΎΡ€ΠΎΡˆΠΎ, Π° Ρ‡Ρ‚ΠΎ сСйчас Π±ΡƒΠ΄Π΅Ρ‚, Ссли Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ? Если Π²Ρ‹ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π»ΠΈ Ρƒ сСбя Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, Ρ‚ΠΎ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅ Π±Ρ‹Π» настроСн ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ события. Π­Ρ‚ΠΎ такая функция, которая активируСтся ΠΏΡ€ΠΈ наступлСнии ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ события.

Кнопка Click

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ дСйствия прилоТСния Π½Π° случай, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ‚Π°ΠΊΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅Ρ‚ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° эту ΠΊΠ½ΠΎΠΏΠΊΡƒ. Как это дСлаСтся?

Для Π½Π°Ρ‡Π°Π»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая активируСтся ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ событий).

def clicked():

Β Β Β Β lbl.configure(text=Β»Π― ΠΆΠ΅ просил…»)

ПослС этого ΠΎΠ½Π° прописываСтся Π² качСствС свойства command Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

btn = Button(window, text=»НС Π½Π°ΠΆΠΈΠΌΠ°Ρ‚ΡŒ!Β», command=clicked)

Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° событий Π±Π΅Π· скобок.

Если ΠΌΡ‹ запустим этот ΠΊΠΎΠ΄, Ρ‚ΠΎ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ надпись измСнилась Π½Π° Β«Π― ΠΆΠ΅ просил».

Π’ΠΎΡ‚, Ρ‡Ρ‚ΠΎ ΡƒΠΆΠ΅ ΡƒΠΌΠ΅Π΅Ρ‚ наша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°. Но это Π΅Ρ‰Π΅ Π½Π΅ всС.

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄Π° ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ класса Entry (тСкстовоС ΠΏΠΎΠ»Π΅ Tkinter)

РаньшС ΠΌΡ‹ рассматривали самыС простыС Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π½Π° Π²Ρ‹Π²ΠΎΠ΄ ΠΈ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ Π²Π²ΠΎΠ΄ (Π² Π²ΠΈΠ΄Π΅ наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ). Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΆΠ΅ ΠΌΡ‹ рассмотрим, ΠΊΠ°ΠΊ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ класс Entry. Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Ρ‚Π°ΠΊΠΎΠ΅ тСкстовоС ΠΏΠΎΠ»Π΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ»ΠΈ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… прилоТСниях.

Π§Ρ‚ΠΎΠ±Ρ‹ Π΅Π³ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ класса ΠΈ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ строка ΠΊΠΎΠ΄Π°.

txt = Entry(window, width=10)

Но, ΠΊΠ°ΠΊ Π²Ρ‹ ΡƒΠΆΠ΅ поняли, этого нСдостаточно. ВСкстовоС ΠΏΠΎΠ»Π΅, Ρ€Π°Π²Π½ΠΎ ΠΊΠ°ΠΊ ΠΈ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊ ΠΎΠΊΠ½Ρƒ. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ функция grid. НапримСр, Ρ‚Π°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½ΠΎΠ΅ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ столбцС (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, столбцС, ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΌ индСкс 1). БоотвСтствСнно, ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€Π°Π²Π΅Π΅.

Π˜Ρ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ получился ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ.

from tkinter import *Β Β Β Β 

def clicked():Β Β 

Β Β Β Β lbl.configure(text=Β»Π― ΠΆΠ΅ просил…»)Β Β 

window = Tk()Β Β 

window.title(Β«Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ PythonΒ»)Β Β 

window.geometry(β€˜400Γ—250’)Β Β 

lbl = Label(window, text=Β»ΠŸΡ€ΠΈΠ²Π΅Ρ‚Β»)Β Β 

lbl.grid(column=0, row=0)Β Β 

txt = Entry(window,width=10)Β Β 

txt.grid(column=1, row=0)Β Β 

btn = Button(window, text=»НС Π½Π°ΠΆΠΈΠΌΠ°Ρ‚ΡŒ!Β», command=clicked)Β Β 

btn.grid(column=2, row=0)Β Β 

window.mainloop()

Ну, соотвСтствСнно, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ.

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π² этом ΠΊΠΎΠ΄Π΅ Π΅ΡΡ‚ΡŒ нСдостаток. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π²Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ Π² Π½Π΅Π³ΠΎ ΠΈ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Π² Ρ‡Π΅ΠΌ ΠΎΠ½ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒΡΡ староС сообщСниС, тСкст Π² ΠΏΠΎΠ»Π΅ Π½Π΅ обрабатываСтся. Как ΠΆΠ΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠ³Π»ΠΎ Β«ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒΒ» Π΅Π³ΠΎ?

Π­Ρ‚Π° Π·Π°Π΄Π°Ρ‡Π° достигаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ get. БоотвСтствСнно, запишСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄.

def clicked():

Β Β Β Β res = Β«ΠŸΡ€ΠΈΠ²Π΅Ρ‚ {}Β».format(txt.get())

Β Β Β Β lbl.configure(text=res)

БоотвСтствСнно, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ послС наТатия Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° считаСт с тСкстового поля Π΅Π³ΠΎ содСрТимоС ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ тСкст Β«ΠŸΡ€ΠΈΠ²Π΅Ρ‚Β» вмСстС с Ρ‚Π΅ΠΌ тСкстом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΡƒΠΊΠ°Π·Π°Π» Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ этапС.

Ну ΠΈ нСбольшая дСмонстрация ΠΎΠΊΠ½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ этот Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π».

Ѐокус Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° Π²Π²ΠΎΠ΄Π°

А Π·Π½Π°Π΅Ρ‚Π΅, Π² Ρ‡Π΅ΠΌ Π΅Ρ‰Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° этого прилоТСния? Π’ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ фокус Π²Π²ΠΎΠ΄Π°. Π’ΠΎ Π΅ΡΡ‚ΡŒ, нСльзя сразу Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ тСкст послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° запустится. Как ΠΆΠ΅ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ настройку фокуса? Для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ.

txt.focus()

ΠŸΡ€ΠΈ запускС ΠΊΠΎΠ΄Π° Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ тСкст ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ сразу, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ курсор стоит нСпосрСдствСнно Π² ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ взаимодСйствиС с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ.

ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° Π²Π²ΠΎΠ΄Π°

ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° Π²Π²ΠΎΠ΄Π° – это опСрация, вслСдствиС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ отобраТаСтся сСрым Ρ†Π²Π΅Ρ‚ΠΎΠΌ, Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ возмоТности Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‚ΡƒΠ΄Π° тСкст. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ состояниС, ΠΊΠ°ΠΊ Β«disabledΒ». ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π°, ΠΊΠ°ΠΊ это дСлаСтся.

txt = Entry(window,width=10, state=’disabled’)

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ запуститС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½ΠΎ, ΠΈ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚Π΅ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ возмоТности ввСсти тСкст. ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ этой возмоТности ΠΌΠ½ΠΎΠ³ΠΎ. НапримСр, Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° поля пароля ΠΏΡ€ΠΈ Ρ‚Ρ€Π΅Ρ…Ρ€Π°Π·ΠΎΠ²ΠΎΠΌ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ Π²Π²ΠΎΠ΄Π΅.

ДобавляСм Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ Combobox

Combobox – это Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠΉ список. Π§Ρ‚ΠΎΠ±Ρ‹ Π΅Π³ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ класса.

from tkinter.ttk import Combobox

combo = Combobox(window)

Π”Π°Π»Π΅Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ значСния для поля Π²Π²ΠΎΠ΄Π° ΠΈ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° Π² подходящСС мСсто ΠΎΠΊΠ½Π°.

combo[β€˜values’] = (1, 2, 3, 4, 5, «ВСкст»)Β Β 

combo.current(1)Β  # установитС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽΒ Β 

combo.grid(column=0, row=0)Β Β 

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ использованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ get, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ содСрТимоС списка.Β 

ДобавляСм Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ Checkbutton (чСкбокс)

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ Checkbutton, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ класса.

from tkinter.ttk import Checkbutton

chk = Checkbutton(window, text=β€™Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒβ€™)

Если ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ var=chk_state, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

Установка состояния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ intvar()

Π§Ρ‚ΠΎΠ±Ρ‹ чСкбокс ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с поставлСнной Π³Π°Π»ΠΎΡ‡ΠΊΠΎΠΉ ΠΈΠ»ΠΈ пустым, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ set с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ индСксом. Если Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π±Ρ‹Π» Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½, Ρ‚ΠΎ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ 1. Если ΠΆΠ΅ Π½Π°Π΄ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π±Ρ‹Π» Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½, Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ 0 Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°. ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ это ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ чСкбоксу Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ intvar().

chk_state = IntVar()

chk_state.set(0) # False

chk_state.set(1) # True

Установка состояния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ booleanvar()

Π£ΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ состояниС чСкбокса ΠΌΠΎΠΆΠ½ΠΎ ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ BooleanVar. Π’ этом случаС ΠΌΠ΅Ρ‚ΠΎΠ΄ set устанавливаСтся Π½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ True ΠΈΠ»ΠΈ False.

chk_state = BooleanVar()Β Β 

chk_state.set(True)Β  # Π·Π°Π΄Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ состояния чСкбокса 

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΡ‚ использования BooleanVar ΠΈ IntVar ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅. МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ большС нравится.

ДобавляСм Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ RadioButton

Π Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΊΠΈ – ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π»ΡŽΠ±ΠΈΠΌΡ‹Ρ… Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π»ΡŽΠ±Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Выглядят ΠΎΠ½ΠΈ Ρ‚Π°ΠΊ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡ… Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ, дСйствия Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ присоСдиняСтся класс Radiobutton.

rad1 = Radiobutton(window, text=β€™ΠŸΠ΅Ρ€Π²Ρ‹ΠΉβ€™, value=1)Β Β 

rad2 = Radiobutton(window, text=’Второй’, value=2)Β Β 

rad3 = Radiobutton(window, text=’ВрСтий’, value=3)

И, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°ΠΌ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΎΠΊ. Они Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… мСстах.

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΊΡƒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Π»Π°, ΠΊΠ°ΠΊ обычная ΠΊΠ½ΠΎΠΏΠΊΠ°. Π’ΠΎ Π΅ΡΡ‚ΡŒ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ события Π½Π° Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅. ДСлаСтся это Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

rad1 = Radiobutton(window,text=β€™ΠŸΠ΅Ρ€Π²Π°Ρβ€™, value=1, command=clicked)

def clicked():

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Radio Button (избранная Radio Button)

Для получСния значСния Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ Ρ‚ΠΎΠΉ, которая сСйчас Π²Ρ‹Π±Ρ€Π°Π½Π°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π° ΠΏΠΎΡ‚ΠΎΠΌ просто ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Для этого прописываСтся сама пСрСмСнная, Π° Π΅ΠΉ присваиваСтся функция IntVar. А Π½ΠΎΠΌΠ΅Ρ€ ΠΊΠ½ΠΎΠΏΠΊΠΈ пСрСдаСтся Π² качСствС свойства value.

ДобавляСм Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ ScrolledText (тСкстовая ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Tkinter)

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ большоС тСкстовоС ΠΏΠΎΠ»Π΅, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса ScrolledText:

from tkinter import scrolledtext

txt = scrolledtext.ScrolledText(window,width=40,height=10)

Π’ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π² свойствах Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΈ высоту. МоТно этого Π½Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС тСкстовоС ΠΏΠΎΠ»Π΅ Π·Π°ΠΉΠΌΠ΅Ρ‚ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ всСго ΠΎΠΊΠ½Π°.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ получится ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ.

НастраиваСм содСрТимоС

Настройка содСрТимого большого тСкстового поля осущСствляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° insert. Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅, ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

txt.insert(INSERT, β€˜ΠŸΠΎΠ»Π΅ для Π²Π²ΠΎΠ΄Π° тСкста’)

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅/ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° содСрТимого Scrolledtext

ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ содСрТимоС тСкстового поля ΠΎΡ‡Π΅Π½ΡŒ просто. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ функция delete, которая Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ вмСстС с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ. Π’ скобках ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹, начиная с ΠΊΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΈ Π΄ΠΎ ΠΊΠ°ΠΊΠΎΠΉ трСбуСтся ΡƒΠ±Ρ€Π°Ρ‚ΡŒ содСрТимоС тСкстового поля.

txt.delete(1.0, END)

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ ΠΎΠΊΠ½ΠΎ с сообщСниСм

Π’ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ ΠΎΠΊΠ½Π° – Π²Π°ΠΆΠ½Ρ‹Π΅ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ любого ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Они ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ быстро ΠΏΡ€ΠΎΠΈΠ½Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΎ Ρ‡Π΅ΠΌ-Ρ‚ΠΎ, Π½Π΅ измСняя содСрТимого основного ΠΎΠΊΠ½Π°.Β 

Они ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

from tkinter import messagebox

messagebox.showinfo(β€˜Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊβ€™, β€˜Π’Π΅ΠΊΡΡ‚β€™)

НапримСр, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΊΠ»ΠΈΠΊΠ° ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ прСдусмотрСно Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ ΠΎΠΊΠ½ΠΎ.

Показ сообщСний ΠΎ прСдупрСТдСниях ΠΈ ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…

Π’Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° настройка ΠΏΠΎΠΊΠ°Π·Π° ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΎΠΊΠ½Π° ΠΈΠ»ΠΈ ΠΆΠ΅ увСдомлСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…. ΠžΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ функция, которая ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΎΠΊΠ½ΠΎ.

messagebox.showwarning(β€˜Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊβ€™, β€˜Π’Π΅ΠΊΡΡ‚β€™)Β  # ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰Π΅Π΅ сообщСниС

messagebox.showerror(β€˜Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊβ€™, β€˜Π’Π΅ΠΊΡΡ‚β€™)Β  # ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ сообщСниС ΠΎΠ± ошибкС

Показ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΎΠΊΠΎΠ½ с Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°

Π”ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π° Π±Ρ‹Π²Π°ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ. НапримСр, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠΎΠΊΠ°Π· Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π΄Π°Π²Π°Π» Π±Ρ‹ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΎΡ‚Π²Π΅Ρ‚Π°. Если Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ язык, Π²Ρ‹ с Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎΠ³Π°Π΄Π°Π΅Ρ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ каТдая ΠΈΠ· этих ΠΊΠΎΠΌΠ°Π½Π΄.

res = messagebox.askquestion(β€˜Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊβ€™, β€˜Π’Π΅ΠΊΡΡ‚β€™)

res = messagebox.askyesno(β€˜Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊβ€™, β€˜Π’Π΅ΠΊΡΡ‚β€™)

res = messagebox.askyesnocancel(β€˜Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊβ€™, β€˜Π’Π΅ΠΊΡΡ‚β€™)

res = messagebox.askokcancel(β€˜Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊβ€™, β€˜Π’Π΅ΠΊΡΡ‚β€™)

res = messagebox.askretrycancel(β€˜Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊβ€™, β€˜Π’Π΅ΠΊΡΡ‚β€™)

Кнопка, наТатая ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ истина возвращаСтся Π² случаях, Ссли Π±Ρ‹Π»ΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΎ Π½Π° «ОК», Β«Π”Π°Β», Β«ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒΒ». Π’ΠΎ всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… случаях возвращаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ false.

Но Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ функция, которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚Ρ€ΠΈ значСния – True/False/None Π² зависимости ΠΎΡ‚ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ. Π­Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ askyesnocancel.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ SpinBox (Π’ΠΈΠ΄ΠΆΠ΅Ρ‚ спинбокс)

Spinbox – это Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° со стрСлками. ДобавляСтся ΠΎΠ½ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

spin = Spinbox(window, from_=0, to=100)

БоотвСтствСнно, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ from ΠΈ to ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Π·Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ допустимых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Spinbox

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ textvariable.

spin = Spinbox(window, from_=0, to=100, width=5, textvariable=var)

ДобавляСм Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ Progressbar

Как ΠΈ с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°ΠΌΠΈ, для добавлСния ΡˆΠΊΠ°Π»Ρ‹ прогрСсса, Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ класс.

from tkinter.ttk import Progressbar

bar = Progressbar(window, length=200)

МСняСм Ρ†Π²Π΅Ρ‚ Progressbar

Π‘Ρ…Π΅ΠΌΠ° измСнСния Ρ†Π²Π΅Ρ‚Π° Progressbar довольно слоТная ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ рассмотрСния. Π’ Ρ†Π΅Π»ΠΎΠΌ, ΠΌΠ΅Ρ…Π°Π½ΠΈΠΊΠ° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ: Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΡ‚ΠΈΠ»ΡŒ, Π·Π°Π΄Π°Ρ‚ΡŒ Ρ†Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π°, Π° ΠΏΠΎΡ‚ΠΎΠΌ пСрСнСсти Π΅Π³ΠΎ Π½Π° Progressbar.

ДобавляСм ΠΏΠΎΠ»Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ„Π°ΠΉΠ»Π°

ПолС открытия Ρ„Π°ΠΉΠ»Π° относится ΠΊ классу filedialog. БоотвСтствСнно, Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π°.

from tkinter import filedialog

file = filedialog.askopenfilename()

ВсС эти Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ приводятся, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹. Π’Ρ‹ подставляСтС свои значСния, исходя ΠΈΠ· Π²Π°ΡˆΠΈΡ… Π·Π°Π΄Π°Ρ‡.

Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Ρ‚ΠΈΠΏ Ρ„Π°ΠΉΠ»ΠΎΠ² (Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° Ρ„Π°ΠΉΠ»ΠΎΠ²)

Для этого Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ filetypes. ΠŸΡ€ΠΈ этом трСбуСтся ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Π² tuples.

file = filedialog.askopenfilename(filetypes = ((Β«Text filesΒ»,Β»*.txtΒ»),(Β«all filesΒ»,Β»*.*Β»)))

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°Π½Π΅Π»ΠΈ мСню

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с мСню сущСствуСт ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ класс menu.Β 

menu = Menu(window)

menu.add_command(label=’Ѐайл’)

window.config(menu=menu)

Π’ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ сначала создаСтся мСню, Π° ΠΏΠΎΡ‚ΠΎΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. А Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ подмСню осущСствляСтся Ρ‚Π°ΠΊ.

menu.add_cascade(label=’Автор’, menu=new_item)

ДобавляСм Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ Notebook (ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»Π°Π΄ΠΊΠΎΠΉ)

Π’Π°ΠΊΠΆΠ΅ Python позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ. ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ дСйствий довольно слоТная, ΠΈ эта Ρ‚Π΅ΠΌΠ° Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ рассмотрСния:

  1. БоздаСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса Notebook.
  2. БоздаСтся Π²ΠΊΠ»Π°Π΄ΠΊΠ°.
  3. Π’ΠΊΠ»Π°Π΄ΠΊΠ° добавляСтся Π² элСмСнт управлСния Π²ΠΊΠ»Π°Π΄ΠΊΠ°ΠΌΠΈ ΠΈ осущСствляСтся Π·Π°ΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° с Ρ†Π΅Π»ΡŒΡŽ отобраТСния Π΅Π³ΠΎ Π² ΠΎΠΊΠ½Π΅.

ДобавляСм Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡƒ

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡƒ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅ свойство Ρ‚ΠΎΠΉ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ осущСствляСтся Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅.

ДобавляСм ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» для Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² (Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅)

Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ свойства padx ΠΈ pady.

lbl1 = Label(tab1, text= β€˜label1’, padx=5, pady=5)

Как Π²ΠΈΠ΄ΠΈΠΌ, Ρ‚Π΅ΠΌΠ° ΠΎΡ‡Π΅Π½ΡŒ ΠΎΠ±ΡˆΠΈΡ€Π½Π°Ρ, ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ дСйствиСм, описанным Π²Ρ‹ΡˆΠ΅, Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, хочСтся Π½Π°Π΄Π΅ΡΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π’Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΎΠ±Ρ‰Π΅Π΅ прСдставлСниС ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с графичСским интСрфСйсом Π² Python.

ΠžΡ†Π΅Π½ΠΈΡ‚Π΅ качСство ΡΡ‚Π°Ρ‚ΡŒΠΈ. Нам Π²Π°ΠΆΠ½ΠΎ вашС ΠΌΠ½Π΅Π½ΠΈΠ΅:

Π›ΡƒΡ‡ΡˆΠΈΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Python для создания прилоТСния ΠΈ графичСского интСрфСйса

Python Π±Ρ‹Π» самым популярным языком программирования, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования. Π‘ Python Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ простыС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π±Π΅Π· нСобходимости ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ†Π΅Π»ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Python – это ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр возмоТностСй для графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ GUI (ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ прилоТСния с графичСским интСрфСйсом простым ΠΈ бСзопасным способом). Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ обсуТдаСтся Π»ΡƒΡ‡ΡˆΠΈΠ΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ Python для создания Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ прилоТСния ΠΈ графичСского интСрфСйса.

ΠžΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρƒ вас Π±Ρ‹Π»ΠΈ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ знания языка программирования Python, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Ρ‹ смоТСтС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти срСды Python.

Π”Π°Π²Π°ΠΉΡ‚Π΅ приступим.

PyQT

PyQt – это Π½Π°Π±ΠΎΡ€ инструмСнтов для графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π­Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· самых ΠΌΠΎΡ‰Π½Ρ‹Ρ… ΠΈ популярных интСрфСйсов Python. Π­Ρ‚ΠΎ комбинация Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Qt (ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Nokia) ΠΈ языка программирования Python, которая позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ, ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΡƒΡ‚Π΅ΠΌ кодирования ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΈ с использованиСм Qt Designer.

PyQt – это бСсплатноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² Qt с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ для кросс-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΠΉ срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’ бСсплатной вСрсии Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ нСдоступны, Π½ΠΎ Ссли вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎΠ΄ свободной Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ.

PyQt доступСн для Windows, MacOSX, Linux, Android iOS ΠΈ Raspberry Pi ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… вСрсий Python ΠΎΡ‚ v2 Π΄ΠΎ Qt v5.

Tkinter

Tkinter – самый популярный ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ для графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈΠ»ΠΈ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Tkinter – это сочСтаниС стандартного графичСского интСрфСйса Tk ΠΈ Python.

TKinter поставляСтся с ΠΎΠ±ΠΈΠ»ΠΈΠ΅ΠΌ рСсурсов ΠΊΠΎΠ΄ΠΎΠ² ΠΈ справочников, Ρ‡Ρ‚ΠΎ являСтся основной заслугой Π²Ρ‹Π±ΠΎΡ€Π° Π΅Π³ΠΎ Π² качСствС ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Он прСдоставляСт Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Π΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΌΠ΅Ρ‚ΠΊΠΈ, ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ тСкстовыС поля, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ с графичСским интСрфСйсом ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ управлСния Button, Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для отобраТСния ΠΊΠ½ΠΎΠΏΠΎΠΊ Π² Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ Canvas ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для рисования Ρ„ΠΈΠ³ΡƒΡ€ (Π»ΠΈΠ½ΠΈΠΉ, ΠΎΠ²Π°Π»ΠΎΠ², ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ² …) Π² вашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.

Π›Π΅Π³ΠΊΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠΌΠΎΡ‰ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π΅Ρ‚Π΅ΡΡŒ с прСпятствиями Π² процСссС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ вашСго прилоТСния, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Tkinter ΠΈΠΌΠ΅Π΅Ρ‚ тысячи ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‡Π΅Π½ΡŒ Π΄ΠΎΠ»Π³ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Tkinter являСтся ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ доступСн ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ Python.

Kivy

Kivy ΠΊΠ°ΠΊ ускорСнная срСда OpenGL ES 2 для создания Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ с Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ свой ΠΊΠΎΠ΄ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… ΠΈΠ»ΠΈ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах (Windows, MacOSX, Linux, Android iOS ΠΈ Raspberry Pi).

Π‘ΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ прилоТСния Kivy вСсСло, Π»Π΅Π³ΠΊΠΎ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Kivy бСсплатный ΠΈ прСдставляСт собой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Python с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ для создания ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния с Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌ СстСствСнным ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ интСрфСйсом. Π£ Kivy ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π΄Π²Π°Π΄Ρ†Π°Ρ‚ΡŒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² Π² своСм Π½Π°Π±ΠΎΡ€Π΅ инструмСнтов.

WxPython

WxPython – это ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Python. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ для Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ кроссплатформСнного графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Widget.

Как Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ прилоТСния для Windows, Unix ΠΈ Mac OS.

PyGUI

PyGUI – самый простой ΠΈ Π»Π΅Π³ΠΊΠΈΠΉ ΠΈΠ· всСх графичСских интСрфСйсов, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ синхронизирован с языком программирования Python. Π­Ρ‚ΠΎ кроссплатформСнная графичСская прикладная срСда для Windows, Mac OS ΠΈ Unix.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ PyGUI вставляСт ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ°Π»ΠΎ ΠΊΠΎΠ΄Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ GUI ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Python, Ρ‡Ρ‚ΠΎ, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ СстСствСнный графичСский интСрфСйс ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

Π˜Ρ‚ΠΎΠ³

Π’Ρ‹ΡˆΠ΅ пСрСчислСны Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΈΠ· доступных графичСских интСрфСйсов Python. ВсС, Ρ‡Ρ‚ΠΎ остаСтся ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ – Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ срСду графичСского интСрфСйса Python, которая Π΅ΠΌΡƒ большС ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚.

ΠŸΠΎΠ½Ρ€Π°Π²ΠΈΠ»ΠΎΡΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π»ΠΈ?

ΠŸΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΠΉΡ‚Π΅ΡΡŒ Π½Π° Π½Π°ΡˆΡƒ рассылку ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΠΉΡ‚Π΅ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½Ρ‹Π΅ обновлСния ΠΎ Π½ΠΎΠ²Ρ‹Ρ… ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΠ°Ρ…, ΡΡ‚Π°Ρ‚ΡŒΡΡ…, курсах ΠΈ ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ Π΄Ρ€ΡƒΠ³ΠΎΠΌ!Β 

ΠŸΡ€ΠΎΡΡ‚ΠΎ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ваш адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ.

(Π‘Π΅Π· спамов; СТСмСсячно Π΄Π²Π° письма; ΠΎΡ‚ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ ΠΎΡ‚ рассылки ΠΌΠΎΠΆΠ½ΠΎ Π² любоС врСмя)

Бпасибо!

Подписка ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π°. πŸ™‚

Tkinter. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ GUI Π½Π° Python. ΠšΡƒΡ€Ρ

ΠšΡƒΡ€Ρ «Tkinter. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ GUI Π½Π° Python» Π·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ с особСнностями создания графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ срСдствами ΠΏΠ°ΠΊΠ΅Ρ‚Π° tkinter языка программирования Python. Π’Ρ€Π΅Π±ΡƒΠ΅Ρ‚ знания языка Python Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ структурного программирования, ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ Π°Π·Π°ΠΌΠΈ ООП.

Π’ курсС удСляСтся Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π±Π°Π·ΠΎΠ²Ρ‹ΠΌΠΈ элСмСнтами интСрфСйса (Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°ΠΌΠΈ). Π˜Π·ΡƒΡ‡Π°ΡŽΡ‚ΡΡ основныС свойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΊΠ½ΠΎΠΏΠΎΠΊ, ΠΌΠ΅Ρ‚ΠΎΠΊ, тСкстовых ΠΏΠΎΠ»Π΅ΠΉ, списков, Ρ„Π»Π°ΠΆΠΊΠΎΠ² ΠΈ Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΎΠΊ, холста ΠΈ мСню.

Π Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ способы размСщСния Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² Π² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ ΠΎΠΊΠ½Π΅: простой ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΎΠΉ, Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΌ Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚.

Π˜Π·ΡƒΡ‡Π°ΡŽΡ‚ΡΡ настройки Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° прилоТСния, Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π°, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ tkinter.ttk.

ВСрсия курса: ΠΌΠ°ΠΉ 2021 Π³.

ΠšΡƒΡ€Ρ с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ практичСских Ρ€Π°Π±ΠΎΡ‚:
android-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅,
pdf-вСрсия.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Tkinter
Tkinter — это ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Python для создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с графичСским интСрфСйсом ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Tkinter ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Python ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π’ ΡƒΡ€ΠΎΠΊΠ΅ рассматриваСтся ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ шагов создания GUI-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: ΠΈΠΌΠΏΠΎΡ€Ρ‚, созданиС ΠΎΠΊΠ½Π° ΠΈ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ², установка свойств, событий ΠΈ Π΄Ρ€.

Π’ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ Button, Label, Entry
Π’ tkinter ΠΎΡ‚ класса Button ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΎΡ‚ Label — ΠΌΠ΅Ρ‚ΠΊΠΈ, ΠΎΡ‚ Entry — однострочныС тСкстовыС поля для Π²Π²ΠΎΠ΄Π°. Π’ ΡƒΡ€ΠΎΠΊΠ΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ основныС свойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ².

ΠœΠ΅Ρ‚ΠΎΠ΄ pack
Π’ tkinter с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° pack Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ ΠΎΠΊΠ½Π΅ ΠΈΠ»ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ΅. Π’ ΡƒΡ€ΠΎΠΊΠ΅ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΠΏΡ†ΠΈΠΈ pack, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π° ΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ родитСля.

Text – многострочноС тСкстовоС ΠΏΠΎΠ»Π΅
Π’ tkinter ΠΎΡ‚ класса Text ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ многострочного тСкстового поля. Π’ ΡƒΡ€ΠΎΠΊΠ΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ свойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Text, настройка Scrollbar (скроллСра), созданиС ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π΅Π³ΠΎΠ².

Radiobutton ΠΈ Checkbutton. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Tkinter
Π’ tkinter ΠΎΡ‚ классов Radiobutton ΠΈ Checkbutton ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ Ρ„Π»Π°ΠΆΠΊΠΈ. Π’ ΡƒΡ€ΠΎΠΊΠ΅ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ ΠΈΡ… основныС свойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ tkinter, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΡΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΊΠΈ Π² Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΈ ΡΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ с Ρ„Π»Π°ΠΆΠΊΠΎΠ².

Π’ΠΈΠ΄ΠΆΠ΅Ρ‚ Listbox
Π’ tkinter ΠΎΡ‚ класса LIstbox ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹-списки, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ мноТСство элСмСнтов. Π’ ΡƒΡ€ΠΎΠΊΠ΅ рассматриваСтся ΠΊΠ°ΠΊ Π·Π°ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ список, ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΈΠ· Π½Π΅Π³ΠΎ значСния, ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Π΅ элСмСнты.

ΠœΠ΅Ρ‚ΠΎΠ΄ bind
Π’ Tkinter ΠΌΠ΅Ρ‚ΠΎΠ΄ bind связываСт Π²ΠΈΠ΄ΠΆΠ΅Ρ‚, событиС ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ-ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ: widget.bind(event, function). Π’ ΡƒΡ€ΠΎΠΊΠ΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ особСнности ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ bind.

Бобытия
Π’ GUI событиями ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠ»ΠΈΠΊΠΈ ΠΈ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΌΡ‹ΡˆΡŒΡŽ, Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ клавиш Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ². Бобытия — это особыС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Tkinter, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ свои Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹: Ρ‚ΠΈΠΏ, Π²ΠΈΠ΄ΠΆΠ΅Ρ‚, ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ событиС ΠΈ Π΄Ρ€.

Canvas
ΠžΡ‚ класса Canvas Π² tkinter ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ холсты, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ гСомСтричСскиС Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. Π’ ΡƒΡ€ΠΎΠΊΠ΅ рассматриваСтся созданиС Π½Π° холстС гСомСтричСских ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ² (ΠΎΡ‚Ρ€Π΅Π·ΠΊΠΎΠ², ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ², эллипсов ΠΈ Π΄Ρ€.) ΠΈ тСкста.

Canvas. Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, Ρ‚Π΅Π³ΠΈ ΠΈ анимация
Canvas — это холст, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ гСомСтричСскиС Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ Ρ‚Π΅Π³ΠΎΠ² с Ρ†Π΅Π»ΡŒΡŽ измСнСния ΠΈΡ… свойств Π² процСссС выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π­Ρ‚ΠΎ позволяСт Π² Ρ‚ΠΎΠΌ числС Π΄Π΅Π»Π°Ρ‚ΡŒ холст ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ, ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ.

Окна
Окна Π² tkinter ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ классов Tk ΠΈ Toplevel, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² случаС программирования ΠΌΠ½ΠΎΠ³ΠΎΠΎΠΊΠΎΠ½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠœΠ΅Ρ‚ΠΎΠ΄ geometry позволяСт Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠΊΠ½Π° ΠΈ Π΅Π³ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° экранС. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° resizable ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΎΠΊΠ½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. title Π·Π°Π΄Π°Π΅Ρ‚ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΎΠΊΠ½Π° Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅.

ΠœΠ΅Ρ‚ΠΎΠ΄ grid
Grid — сСтка, Ρ‚Π°Π±Π»ΠΈΡ†Π° — ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Ρ‚Ρ€Π΅Ρ… ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ΠΌ, ΠΈΠ»ΠΈ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠ² Π³Π΅ΠΎΠΌΠ΅Ρ‚Ρ€ΠΈΠΈ, Tkinter. РСализуСтся Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠ΄ grid Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ². ΠžΠΏΡ†ΠΈΠΈ: row, column, rowspan, columnspan, padx, pady, ipadx, ipady, sticky. Grid Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π΅Π½ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ слоТных GUI, Ρ‡Π΅ΠΌ Pack.

Π”ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π°
Π’ модулях messagebox ΠΈ filedialog ΠΏΠ°ΠΊΠ΅Ρ‚Π° tkinter содСрТатся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ‹Π·ΠΎΠ²Π° стандартных Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΎΠΊΠΎΠ½ — askyesno, askyesnocancel, showerror, showinfo, askopenfilename, asksaveasfilename ΠΈ Π΄Ρ€.

Π’ΠΈΠ΄ΠΆΠ΅Ρ‚ Menu
Π’ tkinter мСню ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ класса Menu. Для привязки списков ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ add_cascade, для создания ΠΊΠΎΠΌΠ°Π½Π΄ — add_command. Для создания Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ мСню ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ post.

ΠœΠ΅Ρ‚ΠΎΠ΄ place
Π’ tkinter ΠΌΠ΅Ρ‚ΠΎΠ΄ place Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ ΠΏΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌ. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΊΠ°ΠΊ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Ρ… ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ (x ΠΈ y), Ρ‚Π°ΠΊ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… (relx ΠΈ rely). Π Π°Π·ΠΌΠ΅Ρ€Ρ‹ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΌΠΈ (width, height) ΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ (relwidth, relheight).

ΠœΠΎΠ΄ΡƒΠ»ΡŒ tkinter.ttk
Π’ состав ΠΏΠ°ΠΊΠ΅Ρ‚Π° tkinter Π²Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ttk, содСрТащий классы Π±ΠΎΠ»Π΅Π΅ стилизованных Π²ΠΈΠ΄ΠΆΠ΅Ρ‚, Ρ‚Π΅ΠΌΡ‹ ΠΈΡ… оформлСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ классы ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для пСрСопрСдСлСния ΠΈΡ… внСшнСго Π²ΠΈΠ΄Π°.

10 Π»ΡƒΡ‡ΡˆΠΈΡ… графичСских интСрфСйсов Python для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² | ΠšΠ»ΡΡ€ Π”. ΠšΠΎΡΡ‚Π°

БосрСдоточСниС внимания Π½Π° ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса — это Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Π½ΠΎ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π» Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΎΠΏΡ‹Ρ‚. , Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ, Π½Π΅ тратя Π½Π° это абсурдно большоС количСство рСсурсов, Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½ΠΎ. . Python ΠΈΠΌΠ΅Π΅Ρ‚ мноТСство Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ графичСских интСрфСйсов ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΈ ΠΌΡ‹ собрали Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· самых популярных Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² графичСского интСрфСйса Python Π² нашСм спискС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ пСрСчислСны Π½ΠΈΠΆΠ΅.

ΠŸΠ°ΠΊΠ΅Ρ‚ PyQt построСн Π½Π° основС Qt framework, , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся кроссплатформСнным Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ для создания мноТСства ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ.ΠŸΠ°ΠΊΠ΅Ρ‚ PyQt5 Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ привязок для Python Π½Π° основС послСднСй вСрсии v5 каркаса ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Qt.

Подобно Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΡƒ Qt5, PyQt5 Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ кроссплатформСнный . Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ возмоТности PyQt5, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ прилоТСния для Ρ‚Π°ΠΊΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ, ΠΊΠ°ΠΊ Windows, Mac, Linux, iOS, Android ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅.

Когда Π΄Π΅Π»ΠΎ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ создания графичСского интСрфСйса, арсСнал PyQt5 ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»ΡΡŽΡ‰ΠΈΠΉ QtGui ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ QtDesigner , , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ многочислСнныС Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ элСмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ простым пСрСтаскиваниСм.ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Ρ‚Π°ΠΊΠΆΠ΅ сущСствуСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания этих элСмСнтов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎ позволяСт с Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠ΅Π»ΠΊΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±Π½Ρ‹Π΅, Ρ‚Π°ΠΊ ΠΈ ΠΊΡ€ΡƒΠΏΠ½ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±Π½Ρ‹Π΅ прилоТСния. ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ Python ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π² PyQt5 Π² Π²ΠΈΠ΄Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ, прСдоставляя Π²Π°ΠΌ Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС возмоТностСй, Ρ‡Π΅ΠΌ просто созданиС графичСского интСрфСйса. Если Π²Π°ΠΌ нравится Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ здСсь, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ PyQt5 с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Β«pip install PyQt5Β».

Часто ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌΡ‹ΠΉ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Python ΠΊΠ°ΠΊ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ GUI, Tkinter Π±Ρ‹Π» создан для оснащСния соврСмСнных Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² стандартным интСрфСйсом инструмСнтария Tk GUI с Π΅Π³ΠΎ привязками ΠΊ Python.Π’ ΠΌΠΈΡ€Π΅ Tkinter Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π·Π½Π°ΠΊΠΎΠΌΡ‹Ρ… Π½Π°ΠΌ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°ΠΌΠΈ , ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Ρ€Π°Π·Π½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ настраиваСмости.

Tkinter встроСн Π² Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ установщики Python для всСх основных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ мноТСство часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… элСмСнтов, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ, ΠΌΡ‹ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π·Π½Π°ΠΊΠΎΠΌΡ‹. НСкоторыС ΠΈΠ· этих Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов пСрСчислСны Π½ΠΈΠΆΠ΅:

● Π Π°ΠΌΠΊΠ°: для прСдоставлСния структуры Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ

● Кнопки: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

● ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для Π²Ρ‹Π±ΠΎΡ€Π°

● Π―Ρ€Π»Ρ‹ΠΊΠΈ: для отобраТСния тСкстовая информация

● Π€Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π°: для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ»ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² / ΠΈΠ· прилоТСния

● Π₯олст: прСдоставляСт пространство для рисования / Ρ€Π°ΡΠΊΡ€Π°ΡˆΠΈΠ²Π°Π½ΠΈΡ Ρ‚Π°ΠΊΠΈΡ… Π²Π΅Ρ‰Π΅ΠΉ, ΠΊΠ°ΠΊ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ ΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ

Написано Π½Π° смСси Python ΠΈ Cython , Kivy — это срСда графичСского интСрфСйса с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ для создания Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятных ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов, ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… ΠΌΡƒΠ»ΡŒΡ‚ΠΈΡΠ΅Π½ΡΠΎΡ€Π½Ρ‹Π΅ прилоТСния , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ СстСствСнный ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс (NUI) .

NUI — это своСго Ρ€ΠΎΠ΄Π° интСрфСйс, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ СстСствСнным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΡƒΠ·Π½Π°Π΅Ρ‚ ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… взаимодСйствиях, обСспСчиваСмых ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ интСрфСйсом, хотя ΠΎΠ½ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌΠΈ.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Kivy Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Ρ‹ интСрфСйсов ΠΌΠΎΠ³ΡƒΡ‚ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… , Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ встроСнная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° OpenGL ES 2 позволяСт ΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈ ΠΌΠΎΡ‰Π½ΡƒΡŽ Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ проСктирования. НаиболСС частоС использованиС инфраструктуры графичСского интСрфСйса Kivy Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ ΠΌΠΈΡ€Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π² Π½Π°ΡˆΠΈΡ… прилоТСниях для Android ΠΈ iOS.Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ распространСнныС Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсах устройств Linux, Windows, Raspberry Pi ΠΈ Mac OS . Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ эту структуру Π² свою срСду, слСдуя инструкциям ΠΏΠΎ установкС, прСдставлСнным Π½Π° ΠΈΡ… Π²Π΅Π±-сайтС.

wxPython — это, ΠΏΠΎ сути, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ дСйствуСт ΠΊΠ°ΠΊ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° для API wxWidgets. wxPython позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Python ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ собствСнныС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ интСрфСйсы , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ.ΠšΡ€ΠΎΡΡΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½Ρ‹Π΅ возмоТности wxPython ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π° Ρ‚Π°ΠΊΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…, ΠΊΠ°ΠΊ Windows, Mac OS, Linux ΠΈ систСмы Π½Π° основС Unix, практичСски Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

Дуэт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΠΎΠ·ΠΆΠ΅ выпустил Project Phoenix Π² качСствС ΠΏΡ€Π΅Π΅ΠΌΠ½ΠΈΠΊΠ° wxPython с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Python 3 . Он Π±Ρ‹Π» построСн с нуля, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡΡ‚ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Python Π½Π°Π±ΠΎΡ€Π° инструмСнтов wxWidgets. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ этот Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Ρ€Π°Π΄Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ послСднСС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ v4.1.1 Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π΅Π³ΠΎ Π² ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Python. Π‘ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ PyPI Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° стала Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΠ»Π°Π²Π½ΠΎΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Β«pip install wxPython == 4.1.1Β».

Написано Π½Π° C ++ Π£Π»ΡŒΡ€ΠΈΡ…ΠΎΠΌ Ρ„ΠΎΠ½ Π—Π°Π΄ΠΎΡƒ, срСда графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ L ibavg с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Python Π² качСствС языка сцСнариСв Π²Ρ‹Π±ΠΎΡ€Π° ΠΈ слуТит ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π»ΡƒΡ‡ΡˆΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов для соврСмСнных сСнсорных устройств . ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° графичСских элСмСнтов, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΈΠ΄Π΅ΠΎ, Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ эффСкты ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ‚ΠΈΠ½Π³, осущСствляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ ускорСния, достигаСмого с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ΠΎΠ² OpenGL ΠΈ графичСского процСссора, Ρ‡Ρ‚ΠΎ обСспСчиваСт ΠΏΠ»Π°Π²Π½Ρ‹Π΅ ΠΈ насыщСнныС Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ эффСкты.

libavg ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… сСнсорных Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ², Π° ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ряд Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹, Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ тСкста, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ, эффСкты графичСского процСссора, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Ρ€Π°Π·ΠΌΡ‹Ρ‚ΠΈΠ΅, Ρ‚Π΅Π½ΠΈ, ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Π’Π°ΠΊΠΆΠ΅ имССтся ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ экрана, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Ρ€Π΅ΠΆΠΈΠΌΡ‹ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π°, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ, ΠΎΠ±Ρ€Π΅Π·ΠΊΠΈ, налоТСния ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ управлСния Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ элСмСнтами.

Π‘ΡƒΠ΄ΡƒΡ‡ΠΈ построСнным Π½Π° C ++ для обСспСчСния нСвСроятно быстрого Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚ своСго прилоТСния Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΡƒΡŽ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π·ΠΎΡ‡Π°Ρ€ΠΎΠ²Π°Π½Ρ‹ libavg.Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ инструкции ΠΏΠΎ установкС Π½Π° страницС Π·Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ ΠΈΡ… Π²Π΅Π±-сайта.

Π Π°Π·Π²Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ этого Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Π½Π΅ являСтся явным ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠΌ Ρ‚ΠΎΠ³ΠΎ, для Ρ‡Π΅Π³ΠΎ ΠΎΠ½ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½? Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡΡΡŒ ΠΊ Ρ‚Π΅ΠΌΠ΅, Ρ‚Π΅, ΠΊΡ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Python, ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ½Π°Ρ‡Π°Π»Ρƒ Π½Π°ΠΉΡ‚ΠΈ мноТСство Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Python GUI ΡƒΡΡ‚Ρ€Π°ΡˆΠ°ΡŽΡ‰ΠΈΠΌΠΈ. Майк Π‘. создал PySimpleGUI Π² 2018 Π³ΠΎΠ΄Ρƒ. – ΠΎΠ±Π»Π΅Π³Ρ‡Π°ΡŽΡ‚ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°ΠΌ Python Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ графичСского интСрфСйса , Π½Π΅ тратя слишком ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ тонкостСй Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Ρ… доступных Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ графичСского интСрфСйса.

PySimpleGUI ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ 4 ΡˆΠΈΡ€ΠΎΠΊΠΎ распространСнных графичСских интСрфСйса Python, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Qt, Tkinter, WxPython ΠΈ Remi , ΠΈ сниТаСт ΠΈΡ… ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π° нСсколько ступСнСй Π·Π° счСт Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ большСй части стандартного ΠΊΠΎΠ΄Π°. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚?

Новички ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ графичСского интСрфСйса ΠΏΠΎ своСму Π²Ρ‹Π±ΠΎΡ€Ρƒ вмСстС с Π»Π΅Π³ΠΊΠΈΠΌ доступом ΠΊ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ элСмСнтам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ΄ΡƒΡ‚ вмСстС с Π½ΠΈΠΌ, для создания ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятных ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов Π±Π΅Π· Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ погруТСния Π² Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ. Π­Ρ‚ΠΎ Π½Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ доступ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½Ρ‹ΠΌ вСрсиям своих Π»ΡŽΠ±ΠΈΠΌΡ‹Ρ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ², Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ Π½Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ всС Π΅Ρ‰Π΅ сущСствуСт.

Π˜Π½Ρ„Ρ€Π°ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ PyForms — это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Python, Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΉ Π² основС ΡˆΠΈΡ€ΠΎΠΊΠΎ извСстной Windows Forms , которая позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΠΊΠΎΠ»ΠΎ ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈ ΠΎΡ‡Π΅Π½ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов. ΠšΡ€ΠΎΡΡ-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½Ρ‹Π΅ возмоТности PyForms ΠΎΠ±Π»Π΅Π³Ρ‡Π°ΡŽΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ созданиС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ с нСбольшими измСнСниями ΠΊΠΎΠ΄Π°, устраняя Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ замСдлСния. PyForms прСдоставляСт экзСмпляры Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… популярных графичСских Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ PyQt, OpenGL, , , ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ интСрфСйсы для своих ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° PyForms Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π° Π½Π° 3 Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ€Π°Π·Π΄Π΅Π»Π°, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ PyForms-GUI, PyForms-Web ΠΈ PyForms-Terminal. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ позволяСт Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ PyForms Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅, Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ ΠΈ Π² графичСском интСрфСйсС Windows. ΠžΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΡƒΡΡΡŒ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ, PyForms идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для быстрого создания ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ быстро Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ обслуТиваниС Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ… этапах прилоТСния. Установка выполняСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Β«pip install pyformsΒ», которая добавляСт всС Ρ‚Ρ€ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΈΠ»ΠΈ, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, это Ρ‚ΠΎΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ wxPython, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ обсуТдали нСсколько ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π°Π·Π°Π΄? Подобно Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ wxPython Π±Ρ‹Π» ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΎΠΉ для Π½Π°Π±ΠΎΡ€Π° инструмСнтов графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ wxWidgets, срСда графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Wax являСтся Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΎΠΉ для wxPython для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Как ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ популярныС Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ, воск Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ для Python. А для Ρ‚Π΅Ρ…, ΠΊΠΎΠΌΡƒ интСрСсно, Π΄Π°, воск ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ созданиС кроссплатформСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

ИдСя воска состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π±ΠΎΠ»Π΅Π΅ простой доступ ΠΊ элСмСнтам ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ Python для создания графичСских интСрфСйсов ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΡƒΠ΄Π°Π»ΠΈΠ² Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Π΅ аспСкты wxPython.ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ базовая ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° wxWindows сама ΠΏΠΎ сСбС Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ эффСктивна, структура графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Wax Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° Ρ‚ΠΎΠΌ ΠΆΠ΅ ΡƒΡ€ΠΎΠ²Π½Π΅ эффСктивности ΠΈ скорости, Ρ‡Ρ‚ΠΎ ΠΈ встроСнныС Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹, прСдоставляСмыС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ.

PySide2 — это , созданный Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ , которая прСдоставила Π½Π°ΠΌ ΡˆΠΈΡ€ΠΎΠΊΠΎ популярный Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Qt. ΠŸΡ€ΠΈΡΠΌΠΎΡ‚Ρ€Π΅Π²ΡˆΠΈΡΡŒ, Π²Ρ‹ встрСтитС Ρ‚Π΅Ρ€ΠΌΠΈΠ½ Β«Qt для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° PythonΒ», , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Π½Π΅ Ρ‡Π΅ΠΌ ΠΈΠ½Ρ‹ΠΌ, ΠΊΠ°ΠΊ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ пСрСноса PySide для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Qt5, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ сама структура Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ называСтся PySide2.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ½ называСтся ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ кроссплатформСнным ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ Python для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Qt for Python. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ прСдоставляСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Python доступ ΠΊ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½ΠΎΠΌΡƒ Π½Π°Π±ΠΎΡ€Ρƒ инструмСнтов ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ для быстрого ΠΈ Π³ΠΈΠ±ΠΊΠΎΠ³ΠΎ создания ΠΏΠΎΡ‚Ρ€ΡΡΠ°ΡŽΡ‰ΠΈΡ… инструмСнтов ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ Qt5 ΠΈ Π²Ρ‹ΡˆΠ΅.

PySide2 Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΌΠΎΡ‰Π½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ сообщСства для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡ‰ΡƒΡ‚ Π΅Π³ΠΎ. Π Π°Π·Π΄Π΅Π» Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ PySide2 Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ Π½Π° Ρ‚Π°ΠΊΠΈΠ΅ области, ΠΊΠ°ΠΊ ΡƒΡ‡Π΅Π±Π½Ρ‹Π΅ пособия , видСоруководства, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, докумСнтация ΠΏΠΎ API, ΠΈ Π΄Ρ€., Π§Ρ‚ΠΎΠ±Ρ‹ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΎΡ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ мноТСство Ρ‚Π΅ΠΌ, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… Π² структуру. AMD Radeon Control Software , Ρ€Π°Π·Π²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ для Mercedes Mini Cooper ΠΈ TomTom Navigation Systems — это лишь Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· высокотСхнологичных ΠΈ соврСмСнных ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π½Π° Qt.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Python GUI , ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ извСстный Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ PyGUI — это простой API, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ интСрфСйсы с использованиСм собствСнных элСмСнтов для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Python. Π‘ΡƒΠ΄ΡƒΡ‡ΠΈ довольно Π»Π΅Π³ΠΊΠΈΠΌ API , срСда PyGUI добавляСт ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ°Π»ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Python ΠΈ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ.PyGUI Π² настоящСС врСмя ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ созданиС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для систСм Π½Π° Π±Π°Π·Π΅ Unix, ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² Windows ΠΈ устройств Mac OS.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΅Ρ‰Π΅ ΠΏΡ€ΠΎΡ‰Π΅ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², докумСнтация для всСй Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ написана Π½Π° Python, Ρ‡Ρ‚ΠΎ избавляСт ΠΎΡ‚ нСобходимости ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌ графичСского интСрфСйса. PyGUI доступСн для Python 2 ΠΈ 3, ΠΈ Π΄Π°, ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ OpenGL ΠΈ GTK.

Какой GUI Framework Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для программистов Python?

10 – PyGUI

Python GUI Project, ΠΎΠ½ ΠΆΠ΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ PyGUI, прСдставляСт собой простой API для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ интСрфСйсы с использованиСм собствСнных элСмСнтов для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Python.Π’ качСствС лСгковСсного API Π½Π΅ трСбуСтся ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ эффСктивным, Ρ‡Π΅ΠΌ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ Π² этом спискС.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π°:

  • Вся докумСнтация написана Π½Π° Python
  • ДоступСн Π² Python 2 ΠΈ 3
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ Python, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ OpenGL ΠΈ GTK
  • ΠšΡ€ΠΎΡΡΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½Ρ‹ΠΉ
  • ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄
  • ΠŸΡ€ΠΎΡΡ‚Π°Ρ установка Ρ‡Π΅Ρ€Π΅Π· Ρ‚Ρ€ΡƒΠ±ΠΊΡƒ

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ:

  • ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ установлСн с Python

9 воск

Wax — это ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° для wxPython (см. β„– 3 Π² этом спискС).Он ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Ρ‚Π΅ ΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΠΈ wxPython, Π½ΠΎ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π΅Π½ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π― Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ» ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ воск, Π²Π½ΠΈΠ·Ρƒ этого поста.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π°:

  • ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄
  • ΠšΡ€ΠΎΡΡΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½Ρ‹ΠΉ
  • ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π° использования

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ:

  • ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ установлСн с Python

8 – ΠŸΠΈΡ„ΠΎΡ€ΠΌ

Pyforms-GUI — это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ основной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Pyforms, которая Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ PyForms-Web ΠΈ PyForms-Terminal.Pyforms — это Python-рСализация Windows Forms, которая позволяСт Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ интСрфСйсы для Ρ€Π΅ΠΆΠΈΠΌΠ° Windows GUI, Π²Π΅Π±-Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΈ Ρ€Π΅ΠΆΠΈΠΌΠ° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π°:

  • ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄
  • ΠšΡ€ΠΎΡΡ-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½Ρ‹ΠΉ
  • Он ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ API, поэтому интСрфСйсы ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ всСго Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… строк ΠΊΠΎΠ΄Π° Python
  • Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ усилиями
  • Код ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½ Π² ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΊ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌΡƒ использованию Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ прилоТСниями
  • Π£ΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ обслуТиваниС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
  • БыстроС ΠΈ простоС ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
  • Низкая кривая обучСния
  • ΠŸΡ€ΠΎΡΡ‚Π°Ρ установка с Ρ‚Ρ€ΡƒΠ±ΠΊΠΎΠΉ

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ:

  • Доступно Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Python3 ΠΈ Π½Π΅ прСдустановлСно
  • НС ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ большого количСства ΠΏΠΎΠ»Π΅ΠΉ Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„ΠΎΡ€ΠΌΠ΅
  • ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ значСния Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² записи, Π½ΠΎ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π²Ρ‹Π·ΠΎΠ²Π° просматриваСмых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²
  • НС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ динамичСски вычисляСмыС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹

7 – PySimpleGUI

PySimpleGUI Π±Ρ‹Π» создан Π΅Ρ‰Π΅ Π² 2008 Π³ΠΎΠ΄Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ графичСского интСрфСйса Π½Π° Python Π±ΠΎΠ»Π΅Π΅ доступной.Π§Ρ‚ΠΎ Π² ΠΈΠΌΠ΅Π½ΠΈ? Π§Ρ‚ΠΎ ΠΆ, ΠΊΠ°ΠΊ слСдуСт ΠΈΠ· названия, это срСда графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ написанная для Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Ρ… Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Python.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π°:

  • ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄
  • ΠšΡ€ΠΎΡΡ-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½Ρ‹ΠΉ
  • ΠŸΠΈΡ‚ΠΎΠ½ 3
  • ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π° установки Ρ‡Π΅Ρ€Π΅Π· Ρ‚Ρ€ΡƒΠ±ΠΊΡƒ
  • Π›Π΅Π³ΠΊΠΎ ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ
  • Доступно мноТСство Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈ руководств, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌ способом Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π΄ΠΈΠ·Π°ΠΉΠ½Π° графичСского интСрфСйса

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ:

  • На самом Π΄Π΅Π»Π΅ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для простой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ графичСского интСрфСйса
  • ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΠ΅Ρ‚ конструктор Ρ„ΠΎΡ€ΠΌ

6 – Libavg

Libavg — отличная срСда графичСского интСрфСйса Python, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ прСдназначСнная для создания сСнсорных интСрфСйсов.Он построСн Π½Π° C ++, Ρ‡Ρ‚ΠΎ обСспСчиваСт быстроС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с сСнсорными интСрфСйсами.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π°:

  • ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄
  • ΠšΡ€ΠΎΡΡ-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½Ρ‹ΠΉ
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΎΠ±Ρ‰ΠΈΠ΅ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ для сСнсорных экранов
  • Π¨ΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ ΠΈ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ эффСкты графичСского процСссора ΠΈ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ тСкста
  • ΠŸΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ экрана для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² управлСния Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΊΠ°ΠΊ Python 2.7 ΠΈ 3

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ:

  • ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ установлСн с Python

5 – Kivy

Kivy — это кроссплатформСнная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Python с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ (Π½Π° основС Python ΠΈ Cython), прСдназначСнная для быстрой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ со слоТными ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ интСрфСйсами, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ прилоТСния с нСсколькими касаниями. Kivy Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° Linux, Windows, OS X, Android, iOS ΠΈ Raspberry Pi, ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠΎΠ΄ Π½Π° всСх этих ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ….

ΠšΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡ Β«ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…Β» плюс использованиС ΠΌΠΎΡ‰Π½Ρ‹Ρ… графичСских ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² (встроСнная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° OpenGL ES 2) Π΄Π΅Π»Π°Π΅Ρ‚ эту структуру подходящСй для Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ iOS ΠΈ Android.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π°:

  • ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄
  • ЛицСнзия MIT
  • ВстроСнныС Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹
  • ΠšΡ€ΠΎΡΡ-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½Ρ‹ΠΉ

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ:

  • ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ установлСн с Python

4 – PySide2

PySide2 — это Qt для Python, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‰ΠΈΠΉ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ привязки Python для Qt. Π­Ρ‚ΠΎ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Qt API Π² прилоТСниях Python, Π° Ρ‚Π°ΠΊΠΆΠ΅ инструмСнт Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° привязок (Shiboken2) для прСдоставлСния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² C ++ Π² Python.

Qt считаСтся стандартом для проСктирования графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ всС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ срСды графичСского интСрфСйса Python. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, PySide2 Π΄Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Python доступ ΠΊ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½ΠΎΠΌΡƒ Π½Π°Π±ΠΎΡ€Ρƒ инструмСнтов ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ для быстрого ΠΈ Π³ΠΈΠ±ΠΊΠΎΠ³ΠΎ создания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π°:

  • ΠŸΡ€ΠΎΡΡ‚Π°Ρ установка Ρ‡Π΅Ρ€Π΅Π· Ρ‚Ρ€ΡƒΠ±ΠΊΡƒ
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΊΠ°ΠΊ Python 3, Ρ‚Π°ΠΊ ΠΈ Python 2.7
  • ΠšΡ€ΠΎΡΡ-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½Ρ‹ΠΉ
  • ΠžΠ±ΡˆΠΈΡ€Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° сообщСства ΠΈ докумСнтация
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ извСстными компаниями, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ TomTom ΠΈ Mercedes

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ:

  • ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ установлСн с Python
  • ЛицСнзия LGPL, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΡΠΎΠΌΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ использованиС Π² коммСрчСских прилоТСниях, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ свой исходный ΠΊΠΎΠ΄ доступным
  • Python 2.7 сборок доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для 64-Π±ΠΈΡ‚Π½Ρ‹Ρ… вСрсий MacOS ΠΈ Linux. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° 32-разрядной вСрсии Windows прСдоставляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Python 2.

3 – wxPython

wxPython — это кроссплатформСнный Π½Π°Π±ΠΎΡ€ инструмСнтов графичСского интСрфСйса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Ρ…, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… графичСских интСрфСйсов простым ΠΈ Π»Π΅Π³ΠΊΠΈΠΌ способом. РСализация прСдставляСт собой Π½Π°Π±ΠΎΡ€ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ графичСского интСрфСйса кроссплатформСнной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ wxWidgets, написанной Π½Π° C ++.

wxPython создаСт собствСнныС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ интСрфСйсы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ, прСдоставляя Π²Π°ΠΌ возмоТности Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π±Π΅Π· Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π°:

  • ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄
  • ΠšΡ€ΠΎΡΡ-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½Ρ‹ΠΉ
  • ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Python 2.7 ΠΈ 3
  • ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π° использования
  • ΠŸΠ»Π°Π²Π½Ρ‹ΠΉ ΠΌΠΎΠ½Ρ‚Π°ΠΆ с Ρ‚Ρ€ΡƒΠ±ΠΊΠΎΠΉ

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ:

  • НС являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ установлСнного Python Π½Π° MacOS

2 – Tkinter

Tkinter — это комбинация стандартных графичСских интСрфСйсов ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Tcl ΠΈ Python, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ Π²Π°ΠΌ всС Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для создания ΠΌΠ½ΠΎΠ³ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса для любого прилоТСния, Π½Π°Π΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅, Π½ΠΎ ΠΎΠ½ особСнно ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π°:

  • Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ послСднюю Π²Π΅Ρ€ΡΠΈΡŽ Python, скорСС всСго, Tkinter ΡƒΠΆΠ΅ установлСн
  • Tkinter ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΎΠ±ΡˆΠΈΡ€Π½ΡƒΡŽ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Ρ…ΠΎΡ€ΠΎΡˆΠΎ извСстных Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ всС Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнныС, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΌΠ΅Ρ‚ΠΊΠΈ, Ρ„Π»Π°ΠΆΠΊΠΈ ΠΈ Ρ‚. Π”.
  • ΠŸΡ€ΠΎΡΡ‚ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Π² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ:

  • Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ Tkinter Ρ…ΠΎΡ€ΠΎΡˆΠΈ, Π½ΠΎ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ваша вСрсия Tkinter Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² Ttk

1 – PyQt5

PyQt5 — ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ извСстная срСда графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ ΠΊΠ°ΠΊ программистами Python, Ρ‚Π°ΠΊ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса.Один ΠΈΠ· Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΏΠ°ΠΊΠ΅Ρ‚ PyQt, построСн Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Qt, которая являСтся Π²Π΅Π΄ΡƒΡ‰ΠΈΠΌ кроссплатформСнным инструмСнтом проСктирования графичСского интСрфСйса практичСски для любого Ρ‚ΠΈΠΏΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠŸΠ°ΠΊΠ΅Ρ‚ PyQt5 ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ привязок для Python Π½Π° основС послСднСй вСрсии (v5) инфраструктуры ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Qt. Он Ρ‚Π°ΠΊΠΆΠ΅ обСспСчиваСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ SQL для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ….

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ просто с ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ QtGUI ΠΈ QtDesigner, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌ мноТСство Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ простым пСрСтаскиваниСм Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ².

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π°:

  • Ѐункция пСрСтаскивания для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов
  • Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΊ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ элСмСнтам, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ нСбольшиС ΠΈ ΠΊΡ€ΡƒΠΏΠ½ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±Π½Ρ‹Π΅ прилоТСния
  • ΠšΡ€ΠΎΡΡ-платформСнная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Windows, Mac, Android ΠΈ Raspberry Pi
  • ΠŸΡ€ΠΎΡΡ‚Π°Ρ установка с Ρ‚Ρ€ΡƒΠ±ΠΊΠΎΠΉ

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ:

  • НС бСсплатно! PyQt5 Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Π»ΠΈ ΠΊΠΎΠΌΠΌΠ΅Ρ€Ρ‡Π΅ΡΠΊΡƒΡŽ Π»ΠΈΡ†Π΅Π½Π·ΠΈΡŽ.
  • ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ установлСн с Python
  • Python 3 ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ

Π’Ρ‹Π²ΠΎΠ΄Ρ‹: какая срСда графичСского интСрфСйса Python Π»ΡƒΡ‡ΡˆΠ΅ всСго?

ΠšΠΎΡ€ΠΎΡ‡Π΅ говоря: всС зависит ΠΎΡ‚ Π²Π°ΡˆΠΈΡ… потрСбностСй! НапримСр:

  • Для Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Ρ… Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ²: Π― Π±Ρ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» Π½Π°Ρ‡Π°Ρ‚ΡŒ с PySimpleGUI.Π­Ρ‚Π° структура проста Π² использовании ΠΈ содСрТит мноТСство Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, которая ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python.
  • Если PySimpleGUI каТСтся Π²Π°ΠΌ слишком ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌ: ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΠ΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ wxPython. Он ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π»ΡƒΡ‡ΡˆΠΈΠΉ Π½Π°Π±ΠΎΡ€ элСмСнтов управлСния Π² простой Π² использовании структурС, хотя Π΅Π³ΠΎ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° (Wax) Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½Π° для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π’ любом случаС ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ шаг Π²ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с PySimpleGUI — Π²Ρ‹Π±ΠΎΡ€ Π·Π° Π²Π°ΠΌΠΈ.
  • ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρ‹, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π½Π° Π΄ΠΈΠ·Π°ΠΉΠ½: ЗаинтСрСсованы Π² Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ? ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ PyQt5, Tkinter ΠΈΠ»ΠΈ PySide 2.ВсС ΠΎΠ½ΠΈ прСдоставят Π²Π°ΠΌ ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π³ΠΈΠ±ΠΊΠΈΠ΅ элСмСнты управлСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс своСй ΠΌΠ΅Ρ‡Ρ‚Ρ‹. Однако ΠΈΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ PyQt5 ΠΈ PySide 2 ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΎΡ‚ вас ΠΏΠΎΠΊΡƒΠΏΠΊΠΈ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ.
  • Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ сСнсорного экрана: НуТСн ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс для прилоТСния с сСнсорным экраном? Киви ΠΈ Π›ΠΈΠ±Π°Π²Π³ — ваши Π»ΡƒΡ‡ΡˆΠΈΠ΅ ставки. Если для вас Π²Π°ΠΆΠ½ΠΎ быстроС врСмя выполнСния, я Π±Ρ‹ ΠΏΠΎΡ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» Libavg. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Ссли Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ пСрвостСпСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ΡΡŒ Киви.
  • ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс Π½Π° основС Ρ„ΠΎΡ€ΠΌ: Если вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ Π½Π° Ρ„ΠΎΡ€ΠΌΡ‹, Pyforms — Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ Π²Ρ‹Π±ΠΎΡ€.Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС слоТно Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Ρ‚ΡŒ Pyforms.
  • Python 2: Если Π²Ρ‹ всС Π΅Ρ‰Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с Python 2, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ нСсколько графичСских интСрфСйсов, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ PyGUI, PySide 2 ΠΈ wxPython. Однако Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Python 2 большС Π½Π΅ поддСрТиваСтся ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Python Software Foundation ΠΈΠ»ΠΈ сообщСством Python. Если Π²Π°ΠΌ трСбуСтся ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Python 2, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с нашСй Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ.

Для мСня Π»ΡƒΡ‡ΡˆΠΈΠΉ UI-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ — это Wax, удобная для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ вСрсия wxPython.Он ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ всСми характСристиками эффСктивного Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Python для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π±Π΅Π· мноТСства Π½Π°Π²ΠΎΡ€ΠΎΡ‚ΠΎΠ², связанных с Π±ΠΎΠ»Π΅Π΅ слоТными Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ. Однако, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½Π° продвинутая Π³Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈ элСмСнты Π΄ΠΈΠ·Π°ΠΉΠ½Π°, Π²Π°ΠΌ, вСроятно, слСдуСт ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ PyQt5, Tkinter ΠΈΠ»ΠΈ PySide 2.

Π“ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ восковой эпиляции? Π’ΠΎΡ‚ простой скрипт Python datepicker, созданный с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Wax:

 ΠΈΠ· ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° воска *

ΠΈΠ· Wax.tools.datepicker ΠΈΠΌΠΏΠΎΡ€Ρ‚ DatePicker

Π΄Π°Ρ‚Π° ΠΈ врСмя ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°

врСмя ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°


класс MainFrame (VerticalFrame):

def Body (self):

p1 = HorizontalPanel (ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ)

dp1 = DatePicker (p1)

p1.AddComponent (dp1)

p1.AddSpace (10)


b1 = Кнопка (p1, Β«Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ 1 дСнь», event = self.AddOneDay)

p1.AddComponent (b1)
 

p1.Pack ()

self.AddComponent (p1, expand = 'h', border = 4)
 

p2 = HorizontalPanel (ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ)

dp2 = DatePicker (p2 ,, show_century = 1)

p2.AddComponent (dp2)

p2.AddSpace (10)



b2 = Кнопка (p2, Β«Π’Ρ‡Π΅Ρ€Π°Β», event = self.SetToYesterday)

 p2.AddComponent (b2)


p2.Pack ()

self.AddComponent (p2, expand = 'h', border = 4)
 

сСбя.ΠŸΠ°ΠΊΠ΅Ρ‚()

self.BackgroundColor = p1.BackgroundColor

self.dp1 = dp1

self.dp2 = dp2


# ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ dp2 Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ Π³ΠΎΠ΄ΠΎΠΌ

thisyear = time.localtime (time.time ()) [0]

dp2.SetRange ((Π² этом Π³ΠΎΠ΄Ρƒ, 1, 1), (Π² этом Π³ΠΎΠ΄Ρƒ, 12, 31))


def AddOneDay (сСбя, событиС):

self.dp1.Inc ()

print "Π”Π°Ρ‚Π° установлСна ​​на:", self.dp1.Value


def SetToYesterday (сСбя, событиС):

сСйчас = врСмя.localtime (врСмя.врСмя ())

self.dp2.Value = now [: 3] # ΠΊΠΎΡ€Ρ‚Π΅ΠΆ: (Π³ΠΎΠ΄, мСсяц, дСнь)

сСбя.dp2.Dec ()


app = Application (MainFrame, title = 'datepicker-1')

app.Run ()
 

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Π°ΠΌ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ ΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ GUI, установитС Π½Π°ΡˆΡƒ срСду выполнСния GUI Frameworks для Windows ΠΈΠ»ΠΈ Linux, которая содСрТит Π²Π΅Ρ€ΡΠΈΡŽ Python ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² графичСского интСрфСйса, описанных Π² этом постС.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ActiveState Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ срСду Python Π·Π° считанныС ΠΌΠΈΠ½ΡƒΡ‚Ρ‹, ΠΊΠ°ΠΊ ΠΈ Ρ‚Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ создали для этого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ сами ΠΈΠ»ΠΈ ΡƒΠ·Π½Π°ΠΉΡ‚Π΅ большС ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ это ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Python Π±Ρ‹Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ.

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹Π΅ чтСния

10 Π»ΡƒΡ‡ΡˆΠΈΡ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Python для Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

Π›ΡƒΡ‡ΡˆΠΈΠ΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ Python для мобильной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ способы ΠΈΡ… использования

Python GUI — tkinter — GeeksforGeeks

Python ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ GUI (графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ). Из всСх ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² графичСского интСрфСйса Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ tkinter. Π­Ρ‚ΠΎ стандартный интСрфСйс Python для Π½Π°Π±ΠΎΡ€Π° инструмСнтов Tk GUI, поставляСмого с Python.Python с tkinter — это самый быстрый ΠΈ простой способ создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с графичСским интСрфСйсом. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ графичСского интСрфСйса с использованиСм tkinter — простая Π·Π°Π΄Π°Ρ‡Π°.
Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ tkinter:

  1. Π˜ΠΌΠΏΠΎΡ€Ρ‚ модуля — tkinter
  2. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ (ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€)
  3. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ любоС количСство Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² Π² Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ
  4. ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ события ΠΊ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°ΠΌ.

Π˜ΠΌΠΏΠΎΡ€Ρ‚ tkinter Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ ΠΈΠΌΠΏΠΎΡ€Ρ‚Ρƒ любого Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ модуля Π² ΠΊΠΎΠ΄Π΅ Python. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ имя модуля Π² Python 2.x — это Β«TkinterΒ», Π° Π² Python 3.x — Β«tkinterΒ».

 ΠΈΠΌΠΏΠΎΡ€Ρ‚Π½Ρ‹ΠΉ tkinter
 

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Π²Π° основных ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ создании прилоТСния Python с графичСским интСрфСйсом ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

  1. Tk (screenName = None, baseName = None, className = ‘Tk’, useTk = 1): Для создания Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° tkinter ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ‘Tk (screenName = None, baseName = None, className =’ Tk ‘, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Tk = 1)’. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ имя ΠΎΠΊΠ½Π°, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ className Π½Π° ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ΅.Основной ΠΊΠΎΠ΄, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для создания Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° прилоТСния:
     m = tkinter.Tk (), Π³Π΄Π΅ m - имя ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° 
  2. mainloop (): БущСствуСт ΠΌΠ΅Ρ‚ΠΎΠ΄, извСстный ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ mainloop () ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π³ΠΎΡ‚ΠΎΠ²ΠΎ ΠΊ запуску. mainloop () — это бСсконСчный Ρ†ΠΈΠΊΠ», ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для запуска прилоТСния, оТидания события ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ события, ΠΏΠΎΠΊΠ° ΠΎΠΊΠ½ΠΎ Π½Π΅ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΎ.
     ΠΌ. ΠœΠ°Π³ΠΈΡΡ‚Ρ€Π°Π»ΡŒ () 

    ΠΈΠΌΠΏΠΎΡ€Ρ‚ tkinter

    ΠΌ = tkinter.Tk ()

    m.mainloop ()

tkinter Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ доступ ΠΊ гСомСтричСской ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡ΠΈΠ²Π°Ρ‚ΡŒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ Π² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΎΠΊΠ½Π°Ρ…. Π’ основном Π΅ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ класса ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠ² Π³Π΅ΠΎΠΌΠ΅Ρ‚Ρ€ΠΈΠΈ.

  1. ΠœΠ΅Ρ‚ΠΎΠ΄ pack (): Он ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅Ρ‚ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ Π² Π±Π»ΠΎΠΊΠΈ ΠΏΠ΅Ρ€Π΅Π΄ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ΠΌ Π² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π΅.
  2. ΠœΠ΅Ρ‚ΠΎΠ΄ grid (): Он ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅Ρ‚ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ Π² сСткС (структура, подобная Ρ‚Π°Π±Π»ΠΈΡ†Π΅) ΠΏΠ΅Ρ€Π΅Π΄ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ΠΌ Π² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π΅.
  3. ΠœΠ΅Ρ‚ΠΎΠ΄ place (): Он ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅Ρ‚ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹, помСщая ΠΈΡ… Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ программистом.

Π•ΡΡ‚ΡŒ ряд Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² своС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ tkinter. НСкоторыС ΠΈΠ· основных Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² описаны Π½ΠΈΠΆΠ΅:

  1. Кнопка : этот Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для добавлСния ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
    ΠžΠ±Ρ‰ΠΈΠΉ синтаксис:
     w = Кнопка (master, option = value) 

    master — ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для прСдставлСния Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°.
    БущСствуСт ряд ΠΎΠΏΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для измСнСния Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΊΠ½ΠΎΠΏΠΎΠΊ. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΎΠΏΡ†ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ запятыми. НСкоторыС ΠΈΠ· Π½ΠΈΡ… пСрСчислСны Π½ΠΈΠΆΠ΅.

    • activebackground : для установки Ρ†Π²Π΅Ρ‚Π° Ρ„ΠΎΠ½Π°, ΠΊΠΎΠ³Π΄Π° ΠΊΠ½ΠΎΠΏΠΊΠ° находится ΠΏΠΎΠ΄ курсором.
    • activeforeground : для установки Ρ†Π²Π΅Ρ‚Π° ΠΏΠ΅Ρ€Π΅Π΄Π½Π΅Π³ΠΎ ΠΏΠ»Π°Π½Π°, ΠΊΠΎΠ³Π΄Π° ΠΊΠ½ΠΎΠΏΠΊΠ° находится ΠΏΠΎΠ΄ курсором.
    • bg : для установки Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° Ρ„ΠΎΠ½Π°.
    • ΠΊΠΎΠΌΠ°Π½Π΄Π° : для Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.
    • ΡˆΡ€ΠΈΡ„Ρ‚ : для установки ΡˆΡ€ΠΈΡ„Ρ‚Π° Π½Π° ΠΌΠ΅Ρ‚ΠΊΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ.
    • ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ : для установки изобраТСния Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ.
    • ΡˆΠΈΡ€ΠΈΠ½Π° : ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΊΠ½ΠΎΠΏΠΊΠΈ.
    • высота : для установки высоты ΠΊΠ½ΠΎΠΏΠΊΠΈ.

    ΠΈΠΌΠΏΠΎΡ€Ρ‚ tkinter as tk

    r = tk.Tk ()

    r.title (

    23 » ΠΊΠ½ΠΎΠΏΠΊΠ° = Ρ‚ΠΊ.Кнопка (r, тСкст = 'Stop' , ΡˆΠΈΡ€ΠΈΠ½Π° = 25 , ΠΊΠΎΠΌΠ°Π½Π΄Π° = r. Π£Π½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ΠΈΠ΅)

    ΠΊΠ½ΠΎΠΏΠΊΠ°. Π£ΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° ()

    37

    .mainloop ()

    Π’Ρ‹Π²ΠΎΠ΄:

  2. Π₯олст: Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для рисования ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… слоТных ΠΌΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π³Ρ€Π°Ρ„ΠΈΠΊΠ°, тСкст ΠΈ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹.
    ΠžΠ±Ρ‰ΠΈΠΉ синтаксис:
     w = Canvas (master, option = value)
    master - это ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для прСдставлСния Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°.

    БущСствуСт ряд ΠΎΠΏΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для измСнСния Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΎΠΏΡ†ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ запятыми. НСкоторыС ΠΈΠ· Π½ΠΈΡ… пСрСчислСны Π½ΠΈΠΆΠ΅.

    • bd : для установки ΡˆΠΈΡ€ΠΈΠ½Ρ‹ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Π² пиксСлях.
    • bg : для установки ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° Ρ„ΠΎΠ½Π°.
    • курсор : для установки курсора, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Π½Π° холстС.
    • highlightcolor : ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ†Π²Π΅Ρ‚, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ Π² Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠΈ фокуса.
    • ΡˆΠΈΡ€ΠΈΠ½Π° : ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡˆΠΈΡ€ΠΈΠ½Ρƒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°.
    • высота : ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ высоту Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°.

    ΠΈΠ· tkinter import *

    master = Tk ()

    w 906 40 , высота = 60 )

    w.pack ()

    холст_высота = 20

    07

    07 ΡˆΠΈΡ€ΠΈΠ½Π° y = int (canvas_height / 2 )

    w.create_line ( 0 , y, canvas_width, y)

    mainloop ()

    Π’Ρ‹Ρ…ΠΎΠ΄:

  3. CheckButton: Для Π²Ρ‹Π±ΠΎΡ€Π° любого количСства Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ отобраТСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΊΠ°ΠΊ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. ΠžΠ±Ρ‰ΠΈΠΉ синтаксис:
     w = CheckButton (master, option = value) 

    БущСствуСт ряд ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для измСнСния Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° этого Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΎΠΏΡ†ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ запятыми.НСкоторыС ΠΈΠ· Π½ΠΈΡ… пСрСчислСны Π½ΠΈΠΆΠ΅.

    • Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ : для установки Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°.
    • activebackground : для установки Ρ†Π²Π΅Ρ‚Π° Ρ„ΠΎΠ½Π°, ΠΊΠΎΠ³Π΄Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ находится ΠΏΠΎΠ΄ курсором.
    • activeforeground : ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ†Π²Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π½Π΅Π³ΠΎ ΠΏΠ»Π°Π½Π°, ΠΊΠΎΠ³Π΄Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ находится ΠΏΠΎΠ΄ курсором.
    • bg : Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„ΠΎΠ½ БтСганография

      Break

      Π‘Π΅ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΊΠΎΠ΄:

      ΠŸΡ€ΠΈΠΊΡ€Π΅ΠΏΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»: nd color.

    • ΠΊΠΎΠΌΠ°Π½Π΄Π° : для Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.
    • ΡˆΡ€ΠΈΡ„Ρ‚ : для установки ΡˆΡ€ΠΈΡ„Ρ‚Π° Π½Π° ΠΌΠ΅Ρ‚ΠΊΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ.
    • ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ : для установки изобраТСния Π½Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚.

    ΠΈΠ· tkinter ΠΈΠΌΠΏΠΎΡ€Ρ‚ *

    мастСр = Tk ()

    мастСр, тСкст = 'муТской' , пСрСмСнная = var1).сСтка (строка = 0 , Π»ΠΈΠΏΠΊΠΈΠΉ = W)

    var2 = IntVar ()

    Checkbutton (master, text female , пСрСмСнная = var2) .grid (строка = 1 , Π»ΠΈΠΏΠΊΠΈΠΉ = W)

    mainloop ()

    Π’Ρ‹Ρ…ΠΎΠ΄

  4. Π—Π°ΠΏΠΈΡΡŒ: Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π²Π²ΠΎΠ΄Π° однострочного тСкста ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.. Для Π²Π²ΠΎΠ΄Π° многострочного тСкста ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ «ВСкст».
    ΠžΠ±Ρ‰ΠΈΠΉ синтаксис:
     w = Entry (master, option = value)
     

    master - это ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для прСдставлСния Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°.
    БущСствуСт ряд ΠΎΠΏΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для измСнСния Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΎΠΏΡ†ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ запятыми. НСкоторыС ΠΈΠ· Π½ΠΈΡ… пСрСчислСны Π½ΠΈΠΆΠ΅.

    • bd : для установки ΡˆΠΈΡ€ΠΈΠ½Ρ‹ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Π² пиксСлях.
    • bg : для установки ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° Ρ„ΠΎΠ½Π°.
    • курсор : для установки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ курсора.
    • ΠΊΠΎΠΌΠ°Π½Π΄Π° : для Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.
    • highlightcolor : ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ†Π²Π΅Ρ‚, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ Π² Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠΈ фокуса.
    • ΡˆΠΈΡ€ΠΈΠ½Π° : ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΊΠ½ΠΎΠΏΠΊΠΈ.
    • высота : для установки высоты ΠΊΠ½ΠΎΠΏΠΊΠΈ.

    ΠΈΠ· tkinter ΠΈΠΌΠΏΠΎΡ€Ρ‚ *

    мастСр = Tk ()

    Имя ).сСтка (строка = 0 )

    ΠœΠ΅Ρ‚ΠΊΠ° (Π³Π»Π°Π²Π½Ρ‹ΠΉ, тСкст = 'Ѐамилия' ). сСтка (строка = 1 7 9624 237 e1 = Π—Π°ΠΏΠΈΡΡŒ (главная)

    e2 = Π—Π°ΠΏΠΈΡΡŒ (главная)

    e1.grid (строка = 0 , столбСц 1 906 )

    e2.сСтка (строка = 1 , столбСц = 1 )

    mainloop ()

    Π’Ρ‹Ρ…ΠΎΠ΄:

  5. ΠšΠ°Π΄Ρ€ 9019:

  6. ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ для Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ². Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ². ΠžΠ±Ρ‰ΠΈΠΉ синтаксис:

     w = Frame (master, option = value)
    master - это ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для прСдставлСния Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. 

    БущСствуСт ряд ΠΎΠΏΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для измСнСния Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΎΠΏΡ†ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ запятыми. НСкоторыС ΠΈΠ· Π½ΠΈΡ… пСрСчислСны Π½ΠΈΠΆΠ΅.

    • highlightcolor : для установки Ρ†Π²Π΅Ρ‚Π° выдСлСния фокуса, ΠΊΠΎΠ³Π΄Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ сфокусирован.
    • bd : для установки ΡˆΠΈΡ€ΠΈΠ½Ρ‹ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Π² пиксСлях.
    • bg : для установки ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° Ρ„ΠΎΠ½Π°.
    • курсор : для установки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ курсора.
    • ΡˆΠΈΡ€ΠΈΠ½Π° : ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡˆΠΈΡ€ΠΈΠ½Ρƒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°.
    • высота : ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ высоту Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°.

    ΠΈΠ· tkinter ΠΈΠΌΠΏΠΎΡ€Ρ‚ *

    ΠΊΠΎΡ€Π΅Π½ΡŒ = Tk ()

    Ρ€Π°ΠΌΠ°.ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° ()

    ниТняя Ρ€Π°ΠΌΠ° = Ρ€Π°ΠΌΠ° (корнСвая)

    ниТняя Ρ€Π°ΠΌΠ°.ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° (боковая = ΠΠ˜Π–ΠΠ―Π―)

    = красный Ρ€Π°ΠΌΠΊΠ°, тСкст = 'красный' , fg = 'красный' )

    красная ΠΊΠ½ΠΎΠΏΠΊΠ°.ΠΏΠ°ΠΊΠ΅Ρ‚ (сторона = ЛЕВАЯ)

    зСлСная ΠΊΠ½ΠΎΠΏΠΊΠ° = Кнопка (Ρ€Π°ΠΌΠΊΠ°, тСкст = 'ΠΊΠΎΡ€ΠΈΡ‡Π½Π΅Π²Ρ‹ΠΉ' , fg = 9024 9 'ΠΊΠΎΡ€ΠΈΡ‡Π½Π΅Π²Ρ‹ΠΉ 7')

    greenbutton.pack (сторона = LEFT)

    bluebutton = Button (frame, text = 'Blue' , fg = синий )

    синяя ΠΊΠ½ΠΎΠΏΠΊΠ°.ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° (сторона = БЛЕВА)

    чСрная ΠΊΠ½ΠΎΠΏΠΊΠ° = Кнопка (ниТняя Ρ€Π°ΠΌΠΊΠ°, тСкст = 'Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ' , fg = 9'6 Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ

    blackbutton.pack (сторона = ΠΠ˜Π–ΠΠ˜Π™)

    root.mainloop ()

    Π’Ρ‹Ρ…ΠΎΠ΄:

  7. Π―Ρ€Π»Ρ‹ΠΊ : Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ярлык любой тСкст ΠΈΠ»ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ Π² любоС врСмя согласно ΠΊΠΎΠ΄Ρƒ.
    ΠžΠ±Ρ‰ΠΈΠΉ синтаксис:
     w = Label (master, option = value)
    master - это ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для прСдставлСния Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. 

    БущСствуСт ряд ΠΎΠΏΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для измСнСния Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΎΠΏΡ†ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ запятыми. НСкоторыС ΠΈΠ· Π½ΠΈΡ… пСрСчислСны Π½ΠΈΠΆΠ΅.

    • bg : для установки Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° Ρ„ΠΎΠ½Π°.
    • bg , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π°.
    • ΠΊΠΎΠΌΠ°Π½Π΄Π° : для Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.
    • ΡˆΡ€ΠΈΡ„Ρ‚ : для установки ΡˆΡ€ΠΈΡ„Ρ‚Π° Π½Π° ΠΌΠ΅Ρ‚ΠΊΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ.
    • ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ : для установки изобраТСния Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ.
    • ΡˆΠΈΡ€ΠΈΠ½Π° : ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΊΠ½ΠΎΠΏΠΊΠΈ.
    • высота ”, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ высоту ΠΊΠ½ΠΎΠΏΠΊΠΈ.

    ΠΈΠ· tkinter ΠΈΠΌΠΏΠΎΡ€Ρ‚ *

    ΠΊΠΎΡ€Π΅Π½ΡŒ = Tk ()

    w 906 'GeeksForGeeks.ΠΎΡ€Π³! ' )

    w.pack ()

    root.mainloop ()

    Π’Ρ‹Π²ΠΎΠ΄:

  8. Listbox : ΠΎΠ½ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ список, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ любоС количСство Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ².
    ΠžΠ±Ρ‰ΠΈΠΉ синтаксис:
     w = Listbox (master, option = value)
    master - это ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для прСдставлСния Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. 

    БущСствуСт ряд ΠΎΠΏΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для измСнСния Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΎΠΏΡ†ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ запятыми. НСкоторыС ΠΈΠ· Π½ΠΈΡ… пСрСчислСны Π½ΠΈΠΆΠ΅.

    • highlightcolor : для установки Ρ†Π²Π΅Ρ‚Π° выдСлСния фокуса, ΠΊΠΎΠ³Π΄Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ сфокусирован.
    • bg : для установки Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° Ρ„ΠΎΠ½Π°.
    • bd : для установки ΡˆΠΈΡ€ΠΈΠ½Ρ‹ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Π² пиксСлях.
    • ΡˆΡ€ΠΈΡ„Ρ‚ : для установки ΡˆΡ€ΠΈΡ„Ρ‚Π° Π½Π° ΠΌΠ΅Ρ‚ΠΊΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ.
    • ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ : для установки изобраТСния Π½Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚.
    • ΡˆΠΈΡ€ΠΈΠ½Π° : ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡˆΠΈΡ€ΠΈΠ½Ρƒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°.
    • высота : ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ высоту Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°.

    ΠΈΠ· tkinter ΠΈΠΌΠΏΠΎΡ€Ρ‚ *

    вСрхняя Ρ‡Π°ΡΡ‚ΡŒ = Tk ()

    Ρ„ΡƒΠ½Ρ‚. Вставка ( 1 , 'Python' )

    Ρ„ΡƒΠ½Ρ‚. Вставка ( 2 , 'Java' 9237 Lb) вставка ( 3 , 'C ++' )

    Ρ„ΡƒΠ½Ρ‚ вставка ( 4 , 'любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ' )

    Ρ„ΡƒΠ½Ρ‚ (ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ°)

    Ρ„ΡƒΠ½Ρ‚

    top.mainloop ()

    Π’Ρ‹Π²ΠΎΠ΄:

  9. MenuButton : это Ρ‡Π°ΡΡ‚ΡŒ мСню свСрху Π²Π½ΠΈΠ·, которая всС врСмя остаСтся Π² ΠΎΠΊΠ½Π΅. КаТдая ΠΊΠ½ΠΎΠΏΠΊΠ° мСню ΠΈΠΌΠ΅Π΅Ρ‚ свои собствСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠžΠ±Ρ‰ΠΈΠΉ синтаксис:
     w = MenuButton (master, option = value)
    master - это ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для прСдставлСния Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°.

    БущСствуСт ряд ΠΎΠΏΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для измСнСния Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΎΠΏΡ†ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ запятыми. НСкоторыС ΠΈΠ· Π½ΠΈΡ… пСрСчислСны Π½ΠΈΠΆΠ΅.

    • activebackground : для установки Ρ„ΠΎΠ½Π° ΠΏΡ€ΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ указатСля ΠΌΡ‹ΡˆΠΈ Π½Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚.
    • activeforeground : для установки ΠΏΠ΅Ρ€Π΅Π΄Π½Π΅Π³ΠΎ ΠΏΠ»Π°Π½Π° ΠΏΡ€ΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ указатСля ΠΌΡ‹ΡˆΠΈ Π½Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚.
    • bg : для установки Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° Ρ„ΠΎΠ½Π°.
    • bd : ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°.
    • курсор : для отобраТСния курсора ΠΏΡ€ΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ указатСля ΠΌΡ‹ΡˆΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ мСню.
    • ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ : для установки изобраТСния Π½Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚.
    • ΡˆΠΈΡ€ΠΈΠ½Π° : ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡˆΠΈΡ€ΠΈΠ½Ρƒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°.
    • высота : ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ высоту Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°.
    • highlightcolor : для установки Ρ†Π²Π΅Ρ‚Π° выдСлСния фокуса, ΠΊΠΎΠ³Π΄Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ сфокусирован.

    ΠΎΡ‚ tkinter ΠΈΠΌΠΏΠΎΡ€Ρ‚ *

    Π²Π΅Ρ€Ρ… = Tkton () Tkton () = "GfG")

    ΠΌΠ±.grid ()

    mb.menu = МСню (mb, ΠΎΡ‚Ρ€Ρ‹Π²Π½ΠΎΠ΅ = 0 )

    mb ["мСню"] = 000u

    cVar = IntVar ()

    aVar = IntVar ()

    mb.menu.add_checkbutton (label сВар)

    ΠΌΠ±.menu.add_checkbutton (ΠΌΠ΅Ρ‚ΠΊΠ° = 'About' , пСрСмСнная = aVar)

    mb.pack ()

    top.mainloop () :

  10. МСню : ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания всСх Π²ΠΈΠ΄ΠΎΠ² мСню, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.
    ΠžΠ±Ρ‰ΠΈΠΉ синтаксис:
     w = МСню (Π³Π»Π°Π²Π½ΠΎΠ΅, опция = Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅)
    master - это ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для прСдставлСния Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°.

    БущСствуСт ряд ΠΎΠΏΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для измСнСния Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° этого Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΎΠΏΡ†ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ запятыми. НСкоторыС ΠΈΠ· Π½ΠΈΡ… пСрСчислСны Π½ΠΈΠΆΠ΅.

    • Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ : для установки Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°.
    • activebackground : для установки Ρ†Π²Π΅Ρ‚Π° Ρ„ΠΎΠ½Π°, ΠΊΠΎΠ³Π΄Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ находится ΠΏΠΎΠ΄ курсором.
    • activeforeground : ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ†Π²Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π½Π΅Π³ΠΎ ΠΏΠ»Π°Π½Π°, ΠΊΠΎΠ³Π΄Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ находится ΠΏΠΎΠ΄ курсором.
    • bg : для установки Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° Ρ„ΠΎΠ½Π°.
    • ΠΊΠΎΠΌΠ°Π½Π΄Π° : для Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.
    • ΡˆΡ€ΠΈΡ„Ρ‚ : для установки ΡˆΡ€ΠΈΡ„Ρ‚Π° Π½Π° ΠΌΠ΅Ρ‚ΠΊΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ.
    • ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ : для установки изобраТСния Π½Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚.

    ΠΈΠ· tkinter ΠΈΠΌΠΏΠΎΡ€Ρ‚ *

    ΠΊΠΎΡ€Π΅Π½ΡŒ = Tk () мСню

    ΠΊΠΎΡ€Π΅Π½ΡŒ.config (мСню = мСню)

    filemenu = МСню (мСню)

    menu.add_cascade (ΠΌΠ΅Ρ‚ΠΊΠ° = 'Π€Π°ΠΉΠ»' 6 , мСню filemenu)

    filemenu.add_command (ΠΌΠ΅Ρ‚ΠΊΠ° = 'New' )

    filemenu.add_command (ΠΌΠ΅Ρ‚ΠΊΠ° = 'ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ... .add_separator ()

    filemenu.add_command (ΠΌΠ΅Ρ‚ΠΊΠ° = 'Exit' , command = root.quit)

    мСню helpmenu 9623 = = menu.add_cascade (ΠΌΠ΅Ρ‚ΠΊΠ° = Β«Π‘ΠΏΡ€Π°Π²ΠΊΠ°Β» , мСню = helpmenu)

    helpmenu.add_command (ΠΌΠ΅Ρ‚ΠΊΠ° = 906 923 906 ()

    Π’Ρ‹Π²ΠΎΠ΄:

  11. Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ : относится ΠΊ многострочному ΠΈ Π½Π΅Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΌΡƒ тСксту.Он Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Label.
    ΠžΠ±Ρ‰ΠΈΠΉ синтаксис:
     w = Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ (master, option = value)
    master - это ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для прСдставлСния Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°.
     

    БущСствуСт ряд ΠΎΠΏΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для измСнСния Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΎΠΏΡ†ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ запятыми. НСкоторыС ΠΈΠ· Π½ΠΈΡ… пСрСчислСны Π½ΠΈΠΆΠ΅.

    • bd : для установки Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°.
    • bg : для установки Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° Ρ„ΠΎΠ½Π°.
    • ΡˆΡ€ΠΈΡ„Ρ‚ : для установки ΡˆΡ€ΠΈΡ„Ρ‚Π° Π½Π° ΠΌΠ΅Ρ‚ΠΊΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ.
    • ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ : для установки изобраТСния Π½Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚.
    • ΡˆΠΈΡ€ΠΈΠ½Π° : ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡˆΠΈΡ€ΠΈΠ½Ρƒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°.
    • высота : ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ высоту Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°.

    ΠΈΠ· tkinter ΠΈΠΌΠΏΠΎΡ€Ρ‚ *

    основной = Tk ()

    нашС сообщСниС 906 messageVar = Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ (основноС, тСкст = ourMessage)

    messageVar.config (bg = 'lightgreen' )

    messageVar.pack ()

    main.mainloop ()

    Π’Ρ‹Ρ…ΠΎΠ΄:

  12. 19 Radio

    ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€Π° ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ². Он ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ², ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚.
    ΠžΠ±Ρ‰ΠΈΠΉ синтаксис:

     w = RadioButton (master, option = value)
     

    БущСствуСт ряд ΠΎΠΏΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для измСнСния Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° этого Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΎΠΏΡ†ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ запятыми. НСкоторыС ΠΈΠ· Π½ΠΈΡ… пСрСчислСны Π½ΠΈΠΆΠ΅.

    • activebackground : для установки Ρ†Π²Π΅Ρ‚Π° Ρ„ΠΎΠ½Π°, ΠΊΠΎΠ³Π΄Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ находится ΠΏΠΎΠ΄ курсором.
    • activeforeground : ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ†Π²Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π½Π΅Π³ΠΎ ΠΏΠ»Π°Π½Π°, ΠΊΠΎΠ³Π΄Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ находится ΠΏΠΎΠ΄ курсором.
    • bg : для установки Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° Ρ„ΠΎΠ½Π°.
    • ΠΊΠΎΠΌΠ°Π½Π΄Π° : для Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.
    • ΡˆΡ€ΠΈΡ„Ρ‚ : для установки ΡˆΡ€ΠΈΡ„Ρ‚Π° Π½Π° ΠΌΠ΅Ρ‚ΠΊΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ.
    • ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ : для установки изобраТСния Π½Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚.
    • ΡˆΠΈΡ€ΠΈΠ½Π° : для установки ΡˆΠΈΡ€ΠΈΠ½Ρ‹ ΠΌΠ΅Ρ‚ΠΊΠΈ Π² символах.
    • высота : для установки высоты ΠΌΠ΅Ρ‚ΠΊΠΈ Π² символах.

    ΠΈΠ· tkinter ΠΈΠΌΠΏΠΎΡ€Ρ‚ *

    ΠΊΠΎΡ€Π΅Π½ΡŒ = Tk ()

    v 906 ΠΊΠΎΡ€Π΅Π½ΡŒ, тСкст = 'GfG' , пСрСмСнная = v, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = 1 ).pack (ΡΠΊΠΎΡ€ΡŒ = W)

    Radiobutton (root, text = 'MIT' , пСрСмСнная = v, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = 2) .pack (привязка = Π’Ρ‚)

    mainloop ()

    Π’Ρ‹Ρ…ΠΎΠ΄:

  13. ΠœΠ°ΡΡˆΡ‚Π°Π±: Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания графичСского ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ любоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· .ΠžΠ±Ρ‰ΠΈΠΉ синтаксис:
     w = Scale (master, option = value)
    master - это ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для прСдставлСния Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°.
     

    БущСствуСт ряд ΠΎΠΏΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для измСнСния Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΎΠΏΡ†ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ запятыми. НСкоторыС ΠΈΠ· Π½ΠΈΡ… пСрСчислСны Π½ΠΈΠΆΠ΅.

    • курсор : для измСнСния шаблона курсора, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ΡˆΡŒ находится Π½Π°Π΄ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠΌ.
    • activebackground : для установки Ρ„ΠΎΠ½Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° ΠΏΡ€ΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ указатСля ΠΌΡ‹ΡˆΠΈ Π½Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚.
    • bg : для установки Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° Ρ„ΠΎΠ½Π°.
    • orient : УстановитС Π“ΠžΠ Π˜Π—ΠžΠΠ’ΠΠ›Π¬ΠΠ«Π™ ΠΈΠ»ΠΈ Π’Π•Π Π’Π˜ΠšΠΠ›Π¬ΠΠ«Π™ Π² соотвСтствии с трСбованиями.
    • from_ : для установки значСния ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ†Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΡˆΠΊΠ°Π»Ρ‹.
    • Π΄ΠΎ : для установки значСния Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΊΠΎΠ½Ρ†Π΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΡˆΠΊΠ°Π»Ρ‹.
    • ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ : для установки изобраТСния Π½Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚.
    • ΡˆΠΈΡ€ΠΈΠ½Π° : ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡˆΠΈΡ€ΠΈΠ½Ρƒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°.

    ΠΈΠ· tkinter ΠΈΠΌΠΏΠΎΡ€Ρ‚ *

    мастСр = Tk ()

    _ 906 906 0 , Π΄ΠΎ = 42 )

    w.pack ()

    w = ΠœΠ°ΡΡˆΡ‚Π°Π± (Π³Π»Π°Π²Π½Ρ‹ΠΉ, from_ = 0 , Π΄ΠΎ = 200 , ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ = .pack ()

    mainloop ()

    Π’Ρ‹Π²ΠΎΠ΄:

  14. Полоса ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ : относится ΠΊ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ слайдов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ пСрСчислСнных Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ².
    ΠžΠ±Ρ‰ΠΈΠΉ синтаксис:
     w = полоса ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ (главная, опция = Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅)
    master - это ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для прСдставлСния Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°.

    БущСствуСт ряд ΠΎΠΏΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для измСнСния Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΎΠΏΡ†ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ запятыми. НСкоторыС ΠΈΠ· Π½ΠΈΡ… пСрСчислСны Π½ΠΈΠΆΠ΅.

    • ΡˆΠΈΡ€ΠΈΠ½Π° : ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡˆΠΈΡ€ΠΈΠ½Ρƒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°.
    • activebackground : для установки Ρ„ΠΎΠ½Π° ΠΏΡ€ΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ указатСля ΠΌΡ‹ΡˆΠΈ Π½Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚.
    • bg : для установки Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° Ρ„ΠΎΠ½Π°.
    • bd : ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°.
    • курсор : для отобраТСния курсора ΠΏΡ€ΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ указатСля ΠΌΡ‹ΡˆΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ мСню.

    ΠΈΠ· tkinter ΠΈΠΌΠΏΠΎΡ€Ρ‚ *

    ΠΊΠΎΡ€Π΅Π½ΡŒ = Tk ()

    полоса ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ полоса ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ полоса ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ .pack (сторона = Π’ΠŸΠ ΠΠ’Πž, Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ = Y)

    mylist = Бписок (ΠΊΠΎΡ€Π΅Π½ΡŒ, yscrollcommand = полоса ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ. Π½Π°Π±ΠΎΡ€ )

    для строка Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ( 100 ):

    mylist.624 'строка + str (строка))

    mylist.pack (сторона = LEFT, Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ = BOTH)

    command fig мой список.yview)

    mainloop ()

    Π’Ρ‹Π²ΠΎΠ΄:

  15. ВСкст: Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ многострочный тСкст ΠΈ ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ.
    ΠžΠ±Ρ‰ΠΈΠΉ синтаксис:
     w = Text (master, option = value)
     

    БущСствуСт ряд ΠΎΠΏΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для измСнСния Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° тСкста. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΎΠΏΡ†ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ запятыми. НСкоторыС ΠΈΠ· Π½ΠΈΡ… пСрСчислСны Π½ΠΈΠΆΠ΅.

    • highlightcolor : для установки Ρ†Π²Π΅Ρ‚Π° выдСлСния фокуса, ΠΊΠΎΠ³Π΄Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ сфокусирован.
    • insertbackground : для установки Ρ„ΠΎΠ½Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°.
    • bg : для установки Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° Ρ„ΠΎΠ½Π°.
    • ΡˆΡ€ΠΈΡ„Ρ‚ : для установки ΡˆΡ€ΠΈΡ„Ρ‚Π° Π½Π° ΠΌΠ΅Ρ‚ΠΊΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ.
    • ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ : для установки изобраТСния Π½Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚.
    • ΡˆΠΈΡ€ΠΈΠ½Π° : ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡˆΠΈΡ€ΠΈΠ½Ρƒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°.
    • высота : ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ высоту Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°.

    ΠΎΡ‚ tkinter ΠΈΠΌΠΏΠΎΡ€Ρ‚ *

    ΠΊΠΎΡ€Π΅Π½ΡŒ = Tk ()

    906 906 906 906 2 , ΡˆΠΈΡ€ΠΈΠ½Π° = 30 )

    T.pack ()

    T.insert (END, 'GeeksforGeeks \ nBEST WEBSITE \ n' )

    mainloop ()

    Π’Ρ‹Ρ…ΠΎΠ΄:

    Π’Π²Π΅Ρ€Ρ… Π­Ρ‚ΠΎΡ‚ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ управляСтся ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΌ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠΌ. Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π΅ трСбуСтся Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. ΠžΠ±Ρ‰ΠΈΠΉ синтаксис:

     w = TopLevel (master, option = value)
     

    БущСствуСт ряд ΠΎΠΏΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для измСнСния Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΎΠΏΡ†ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ запятыми. НСкоторыС ΠΈΠ· Π½ΠΈΡ… пСрСчислСны Π½ΠΈΠΆΠ΅.

    • bg : для установки Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° Ρ„ΠΎΠ½Π°.
    • bd : ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°.
    • курсор : для отобраТСния курсора ΠΏΡ€ΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ указатСля ΠΌΡ‹ΡˆΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ мСню.
    • ΡˆΠΈΡ€ΠΈΠ½Π° : ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡˆΠΈΡ€ΠΈΠ½Ρƒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°.
    • высота : ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ высоту Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°.

    ΠΈΠ· tkinter ΠΈΠΌΠΏΠΎΡ€Ρ‚ *

    ΠΊΠΎΡ€Π΅Π½ΡŒ = Tk ()

    root.title ( 'GfG' )

    top = Toplevel ()

    top.title ( 'Python' )

    42 906

    Π’Ρ‹Π²ΠΎΠ΄:

  16. SpinBox: Π­Ρ‚ΠΎ запись Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° Entry. Π—Π΄Π΅ΡΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ввСсти, Π²Ρ‹Π±Ρ€Π°Π² фиксированноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ чисСл. ΠžΠ±Ρ‰ΠΈΠΉ синтаксис:
     w = SpinBox (master, option = value)
     

    БущСствуСт ряд ΠΎΠΏΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для измСнСния Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΎΠΏΡ†ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ запятыми. НСкоторыС ΠΈΠ· Π½ΠΈΡ… пСрСчислСны Π½ΠΈΠΆΠ΅.

    • bg : для установки Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° Ρ„ΠΎΠ½Π°.
    • bd : ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°.
    • курсор : для отобраТСния курсора ΠΏΡ€ΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ указатСля ΠΌΡ‹ΡˆΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ мСню.
    • ΠΊΠΎΠΌΠ°Π½Π΄Π° : для Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.
    • ΡˆΠΈΡ€ΠΈΠ½Π° : ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡˆΠΈΡ€ΠΈΠ½Ρƒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°.
    • activebackground : для установки Ρ„ΠΎΠ½Π° ΠΏΡ€ΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ указатСля ΠΌΡ‹ΡˆΠΈ Π½Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚.
    • disabledbackground : Для ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ„ΠΎΠ½Π° ΠΏΡ€ΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ указатСля ΠΌΡ‹ΡˆΠΈ Π½Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚.
    • from_ : для установки значСния ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ†Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°.
    • Π΄ΠΎ : для установки значСния Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΊΠΎΠ½Ρ†Π΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°.

    ΠΈΠ· tkinter ΠΈΠΌΠΏΠΎΡ€Ρ‚ *

    мастСр = Tk ()

    w 906 906 906 0 , Π΄ΠΎ = 10 )

    w.pack ()

    mainloop ()

    Π’Ρ‹Π²ΠΎΠ΄:

  17. PannedWindow Π­Ρ‚ΠΎ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ количСства располоТСнных Π² Π½Π΅ΠΌ ΠΏΠ°Π½Π΅Π»Π΅ΠΉ. ΠžΠ±Ρ‰ΠΈΠΉ синтаксис:
     w = PannedWindow (master, option = value)
     

    master - это ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для прСдставлСния Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°.
    БущСствуСт ряд ΠΎΠΏΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для измСнСния Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΎΠΏΡ†ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ запятыми.НСкоторыС ΠΈΠ· Π½ΠΈΡ… пСрСчислСны Π½ΠΈΠΆΠ΅.

    • bg : для установки Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° Ρ„ΠΎΠ½Π°.
    • bd : ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°.
    • курсор : для отобраТСния курсора ΠΏΡ€ΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ указатСля ΠΌΡ‹ΡˆΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ мСню.
    • ΡˆΠΈΡ€ΠΈΠ½Π° : ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡˆΠΈΡ€ΠΈΠ½Ρƒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°.
    • высота : ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ высоту Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°.

    ΠΈΠ· tkinter ΠΈΠΌΠΏΠΎΡ€Ρ‚ *

    m1 = PanedWindow ()

    m1.ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ (Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ = ΠžΠ‘Π•Π˜, Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ = 1 )

    слСва = Π’Ρ…ΠΎΠ΄ (m1, bd = 5 ) Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ (слСва)

    ΠΌ2 = PanedWindow (m1, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ = Π’Π•Π Π’Π˜ΠšΠΠ›Π¬ΠΠž)

    m1.add (m2)

    ΠΏΠΎ Π²Π΅Ρ€Ρ…Ρƒ = = = = = orient = Π“ΠžΠ Π˜Π—ΠžΠΠ’ΠΠ›Π¬ΠΠž)

    ΠΌ2.add (Π²Π²Π΅Ρ€Ρ…Ρƒ)

    mainloop ()

    Π’Ρ‹Π²ΠΎΠ΄:

  18. Автор ΡΡ‚Π°Ρ‚ΡŒΠΈ Rishabh Bansal . Если Π²Π°ΠΌ нравится GeeksforGeeks, ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹ внСсти свой Π²ΠΊΠ»Π°Π΄, Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ provide.geeksforgeeks.org ΠΈΠ»ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΅Π΅ ΠΏΠΎ элСктронной ΠΏΠΎΡ‡Ρ‚Π΅ Π½Π° [email protected]. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅, ΠΊΠ°ΠΊ ваша ΡΡ‚Π°Ρ‚ΡŒΡ появляСтся Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ страницС GeeksforGeeks, ΠΈ ΠΏΠΎΠΌΠΎΠ³ΠΈΡ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π³ΠΈΠΊΠ°ΠΌ.

    ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, Ссли Π²Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅, ΠΈΠ»ΠΈ Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅, обсуТдаСмой Π²Ρ‹ΡˆΠ΅.

    Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‰ΠΈΠΊ! Π£ΠΊΡ€Π΅ΠΏΠΈΡ‚Π΅ свои основы с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ курса Python Programming Foundation ΠΈ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅ основы.

    Для Π½Π°Ρ‡Π°Π»Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΡŒΡ‚Π΅ΡΡŒ ΠΊ собСсСдованию. Π Π°ΡΡˆΠΈΡ€ΡŒΡ‚Π΅ свои ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ структур Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ курса Python DS . И Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ своС ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΠ΅ ΠΏΠΎ ΠΌΠ°ΡˆΠΈΠ½Π½ΠΎΠΌΡƒ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΡŽ, ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΊ МашинноС ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ - курс Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ уровня

    8 Python GUI Framework для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²

    ГрафичСскиС интСрфСйсы ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

    Π΄Π΅Π»Π°ΡŽΡ‚ взаимодСйствиС Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° с машиной Π±ΠΎΠ»Π΅Π΅ простым ΠΈ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятным.Π­Ρ‚ΠΎ ΠΈΠ³Ρ€Π°Π΅Ρ‚ Ρ€Π΅ΡˆΠ°ΡŽΡ‰ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π² процСссС ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΌΠΈΡ€Π° ΠΊ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΈΠ·Π°Ρ†ΠΈΠΈ. Python - ΠΎΠ΄ΠΈΠ½ ΠΈΠ· самых Π»ΡŽΠ±ΠΈΠΌΡ‹Ρ… языков Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈΠ·-Π·Π° большого количСства Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ². Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ пСрСчисляСм 8 Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Python GUI Π½Π° 2019 Π³ΠΎΠ΄.

    (Бписок Π² Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½ΠΎΠΌ порядкС)

      Π—Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ Π‘Π•Π‘ΠŸΠ›ΠΠ’ΠΠž Π‘Π΅ΠΌΠΈΠ½Π°Ρ€ ΠΏΠΎ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… >>  

    1 | Киви

    Kivy - это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Python с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ для быстрой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΈΠ½Π½ΠΎΠ²Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ интСрфСйсы, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ прилоТСния с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΡ‚Π°Ρ‡.Π­Ρ‚Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° являСтся кроссплатформСнной ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° Linux, Windows, OS X, Android, iOS ΠΈ Raspberry Pi. ГрафичСский Π΄Π²ΠΈΠΆΠΎΠΊ построСн с использованиСм ΠΌΠΎΠ΄Π΅ΠΌΠ° ΠΈ быстрого графичСского ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π°.

    2 | Libavg

    Libavg - это ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° высокого уровня с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ для ΠΌΠ΅Π΄ΠΈΠ°-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Python Π² качСствС языка сцСнариСв, написан Π½Π° высокоскоростном C ++ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ соврСмСнный OpenGL для Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° дисплСй. Π­Ρ‚Π° структура ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ соврСмСнных сСнсорных интСрфСйсов ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ всС основныС ΠΌΠΎΠ΄Π΅Π»ΠΈ сСнсорных Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Windows Touch, Linux XInput ΠΈ TUIO.Libavg ΠΈΠΌΠ΅Π΅Ρ‚ ряд Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° элСмСнтов отобраТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ соврСмСнным прилоТСниям с интСнсивной Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ, ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ тысячи элСмСнтов отобраТСния Π½Π° экранС, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹Π²ΠΎΠ΄ Π²ΠΈΠ΄Π΅ΠΎ с Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌ ускорСниСм ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

    3 | PyQT

    PyQt прСдставляСт собой Π½Π°Π±ΠΎΡ€ привязок Python v2 ΠΈ v3 для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Qt ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Qt ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° всСх ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Qt, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Windows, OS X, Linux, iOS ΠΈ Android. Π­Ρ‚Π° структура ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ кроссплатформСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Qt C ++ ΠΈ кроссплатформСнный ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ язык Python.Qt - это кроссплатформСнная срСда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Ρ…, встроСнных ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств. Qt Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ абстракции сСтСвых сокСтов, ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², Unicode, рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… SQL, SVG, OpenGL, XML, ΠΏΠΎΠ»Π½ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€, ΡΠΏΡ€Π°Π²ΠΎΡ‡Π½ΡƒΡŽ систСму, ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½ΡƒΡŽ структуру, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π±ΠΎΠ³Π°Ρ‚ΡƒΡŽ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² графичСского интСрфСйса.

    4 | PySimpleGUI

    PySimpleGUI - это срСда графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ для Python, которая ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π²Π΅Ρ€ΡΠΈΡŽ Python 3. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ графичСскиС интСрфСйсы.Π’ настоящСС врСмя сущСствуСт 4 Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Β«ΠΏΠΎΡ€Ρ‚Π°Β» этого Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°: tkinter, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½, Qt с использованиСм Pyside2, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ находится Π½Π° стадии Π°Π»ΡŒΡ„Π°, WxPython, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ находится Π½Π° стадии Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΈ Remi (ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ находится Π½Π° стадии Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. стадия Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

    5 | ΠŸΠΈΡ„ΠΎΡ€ΠΌ

    Pyforms - это кросс-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½Ρ‹ΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с графичСским интСрфСйсом. Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Python для Ρ„ΠΎΡ€ΠΌ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ стола, основанный Π½Π° PyQt, OpenGL ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ…, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ прилоТСниям Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ Π² графичСском интСрфСйсС Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ стола, Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ Π±Π΅Π· нСобходимости ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π°.Pyforms ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ³Π°Π΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹ΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования ΠΊΠΎΠ΄Π° с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ усилиями.

    Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅

    6 | Tkinter

    Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ Tkinter ΠΈΠ»ΠΈ Tk - это фактичСский стандартный ΠΏΠ°ΠΊΠ΅Ρ‚ графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Python (графичСский интСрфСйс ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ). Π­Ρ‚ΠΎ срСда с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, доступная Π½Π° Ρ‚Π°ΠΊΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…, ΠΊΠ°ΠΊ Unix ΠΈ Windows. Π­Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· самых простых ΠΈ популярных способов создания прилоТСния Π½Π° Python с графичСским интСрфСйсом.

    7 | Воск

    Wax - это срСда графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Python, которая располагаСтся ΠΏΠΎΠ²Π΅Ρ€Ρ… wxPython (wxWindows для Python).Π­Ρ‚ΠΎΡ‚ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ удаляСт Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Π΅ аспСкты wxPython (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, ΠΏΠΎ сути, являСтся прямой привязкой ΠΊ ΡƒΡ€ΠΎΠ΄Π»ΠΈΠ²ΠΎΠΌΡƒ API C) ΠΈ прСдоставляСт Π²Π°ΠΌ простыС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ python для создания вашСго графичСского интСрфСйса. Он Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… (Win32, Linux с GTK ΠΈ macOS / OSX с Carbon).

    8 | WxPython

    WxPython - это кроссплатформСнный инструмСнтарий GUI с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ для Python. Он Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² Π²ΠΈΠ΄Π΅ Π½Π°Π±ΠΎΡ€Π° ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Π΅Ρ€Ρ‚Ρ‹Π²Π°ΡŽΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ графичСского интСрфСйса популярной кроссплатформСнной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ wxWidgets, написанной Π½Π° C ++.Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этой структуры Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ собствСнныС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ интСрфСйсы для своих ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² Windows, Mac, Linux ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Unix-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… систСмах. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ языком программирования являСтся Python, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ wxPython просты, ΠΈΡ… Π»Π΅Π³ΠΊΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ.

    ΠŸΠΎΠ΄ΠΏΠΈΡˆΠΈΡ‚Π΅ΡΡŒ Π½Π° Π½Π°ΡˆΡƒ рассылку новостСй

    ΠŸΠΎΠ»ΡƒΡ‡Π°ΠΉΡ‚Π΅ послСдниС обновлСния ΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ прСдлоТСния, подСлившись своСй элСктронной ΠΏΠΎΡ‡Ρ‚ΠΎΠΉ.


      ΠŸΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΊ нашСй Π³Ρ€ΡƒΠΏΠΏΠ΅ Telegram. Π‘Ρ‚Π°Π½ΡŒΡ‚Π΅ Ρ‡Π°ΡΡ‚ΡŒΡŽ интСрСсного сообщСства  

    Амбика Π§ΠΎΡƒΠ΄Ρ…ΡƒΡ€ΠΈ

    ВСхничСский Турналист, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π»ΡŽΠ±ΠΈΡ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎ машинном ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΈ искусствСнном ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π΅.Π›ΡŽΠ±ΠΈΡ‚Π΅Π»ΡŒ ΠΌΡƒΠ·Ρ‹ΠΊΠΈ, сочинСния ΠΈ обучСния Ρ‡Π΅ΠΌΡƒ-Ρ‚ΠΎ нСстандартному.

    Π’ΠΎΠΏ 5 Π»ΡƒΡ‡ΡˆΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ графичСского интСрфСйса Python

    Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим 5 Π»ΡƒΡ‡ΡˆΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² своих ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…. ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡ‚Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ Π½ΠΈΡ….

    Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ графичСский интСрфСйс?

    ГрафичСский интСрфСйс ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈΠ»ΠΈ графичСский интСрфСйс ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ - это интСрактивная срСда для получСния ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ситуациях, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Ρ„ΠΎΡ€ΠΌΡ‹, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, тСсты ΠΈ Ρ‚. Π”. Он прСдоставляСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ экран, Ρ‡Π΅ΠΌ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ интСрфСйс ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки (CLI).

    Бписок Π»ΡƒΡ‡ΡˆΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ графичСского интСрфСйса Python

    Π”Π°Π²Π°ΠΉΡ‚Π΅ сразу ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ Π΄Π΅Π»Ρƒ ΠΈ рассмотрим Π»ΡƒΡ‡ΡˆΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ для Python.

    1. PyQT5

    PyQT5 - это срСда графичСского ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса (GUI) для Python. Он ΠΎΡ‡Π΅Π½ΡŒ популярСн срСди Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΈ графичСский интСрфСйс ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π° QT. Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ QT Development - это Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΏΠ΅Ρ€Π΅Ρ‚Π°ΡΠΊΠΈΠ²Π°Ρ‚ΡŒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ для создания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов.

    Π­Ρ‚ΠΎ бСсплатноС ΡΠ²ΡΠ·ΡƒΡŽΡ‰Π΅Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ для кроссплатформСнной срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Windows, Mac, Android, Linux ΠΈ Raspberry PI.

    Для установки PyQT5 Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

    Π—Π΄Π΅ΡΡŒ дСмонстрируСтся простой ΠΊΠΎΠ΄:

     ΠΈΠ· PyQt5. QtWidgets import QApplication, QMainWindow
    import sys
    
    класс Window (QMainWindow):
       def __init __ (сам):
           супСр () .__ init __ ()
    
           self.setGeometry (300, 300, 600, 400)
           self.setWindowTitle ("Окно PyQt5")
           self.show ()
    
    app = QApplication (sys.argv)
    window = Окно ()
    sys.Π²Ρ‹Ρ…ΠΎΠ΄ (app.exec_ ())
    
     

    Π’Ρ‹Π²ΠΎΠ΄ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄Π° выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

    PyQt5

    Команда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Python ΠΈΠ· ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π΅Ρ‚ прСимущСства использования PyQt:

    PyQt - это Π·Ρ€Π΅Π»Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ привязок Python ΠΊ Qt для кроссплатформСнности. Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Он ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π±ΠΎΠ³Π°Ρ‚Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ встроСнных Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² ΠΈ инструмСнтов для создания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² для формирования слоТных графичСских интСрфСйсов, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π΄Π΅ΠΆΠ½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… SQL для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ взаимодСйствия с Π½ΠΈΠΌΠΈ.

    2. Python Tkinter

    Π”Ρ€ΡƒΠ³ΠΎΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ GUI называСтся Tkinter. Tkinter - ΠΎΠ΄Π½Π° ΠΈΠ· самых популярных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ графичСского интСрфСйса Python для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π­Ρ‚ΠΎ комбинация стандартного графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ TK ΠΈ Python.

    Tkinter прСдоставляСт Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Π΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΌΠ΅Ρ‚ΠΊΠΈ, ΠΊΠ½ΠΎΠΏΠΊΠΈ, тСкстовыС поля, Ρ„Π»Π°ΠΆΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ с графичСским ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ интСрфСйсом.

    Π’ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ управлСния ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для отобраТСния ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ холста ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для рисования Ρ„ΠΈΠ³ΡƒΡ€, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π»ΠΈΠ½ΠΈΠΈ, ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ, ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ ΠΈ Ρ‚. Π”.Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Tkinter - это встроСнная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Python, поэтому Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π΅Π΅, ΠΊΠ°ΠΊ Π΄Ρ€ΡƒΠ³ΡƒΡŽ срСду графичСского интСрфСйса. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ кодирования с использованиСм Tkinter.

     ΠΈΠ· tkinter import *
    
    класс Root (Tk):
        def __init __ (сам):
            super (ΠΊΠΎΡ€Π΅Π½ΡŒ, сам) .__ init __ ()
    
            self.title ("Python Tkinter")
            self.minsize (500400)
    
    ΠΊΠΎΡ€Π΅Π½ΡŒ = ΠšΠΎΡ€Π΅Π½ΡŒ ()
    root.mainloop ()
     

    Π’Ρ‹Π²ΠΎΠ΄ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄Π° ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½ΠΈΠΆΠ΅:

    Tkinter

    3. PySide 2

    Π’Ρ€Π΅Ρ‚ΡŒΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° графичСского интСрфСйса Python, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ собираСмся ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, - это PySide2, ΠΈΠ»ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Π·Π²Π°Ρ‚ΡŒ Π΅Π΅ QT для python.Qt для Python ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ привязки Python для Qt (PySide2), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ API-интСрфСйсы Π² прилоТСниях Python, ΠΈ инструмСнт Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° привязок (Shiboken2), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для прСдставлСния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² C ++ Π² Python.

    Qt для Python доступСн ΠΏΠΎΠ΄ LGPLv3 / GPLv3 ΠΈ коммСрчСской Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ Qt.

    Π˜Ρ‚Π°ΠΊ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ·Π²ΠΎΠ»ΡŒΡ‚Π΅ ΠΌΠ½Π΅ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π²Π°ΠΌ процСсс установки, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Π˜Ρ‚Π°ΠΊ, для установки Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ:

    Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ настройки графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ PySide2.

     ΠΈΠ· PySide2. QtWidgets ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ QtWidgets, QApplication
    import sys
    
    Окно класса (QtWidgets):
        def __init __ (сам):
            супСр () .__ init __ ()
    
            self.setWindowTitle ("Окно Pyside2")
            self.setGeometry (300,300,500,400)
    
    
    app = QApplication (sys.argv)
    window = Окно ()
    window.show ()
    app.exec_ ()
     

    Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄Π° ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½ΠΈΠΆΠ΅:

    Pyside2

    4. Kivy

    Π”Ρ€ΡƒΠ³ΠΎΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ графичСского интСрфСйса, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ собираСмся ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, называСтся Kivy. Kivy - это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Python с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ для быстрой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… ΠΈΠ½Π½ΠΎΠ²Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ интСрфСйсы, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ прилоТСния с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΡ‚Π°Ρ‡.

    Kivy Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° Linux, Windows, OS X, Android, iOS ΠΈ Raspberry Pi. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠΎΠ΄ Π½Π° всСх ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…. Он ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π²Ρ…ΠΎΠ΄ΠΎΠ², ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² ΠΈ устройств, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ WM_Touch, WM_Pen, Mac OS X Trackpad ΠΈ Magic Mouse, Mtdev, Linux Kernel HID.

    Kivy Π½Π° 100% бСсплатСн ΠΏΠΎ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ MIT.

    Набор инструмСнтов ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½, поддСрТиваСтся ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² коммСрчСском ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π΅. Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ стабилСн ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ API, Π° Ρ‚Π°ΠΊΠΆΠ΅ руководство ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ.

    ГрафичСский Π΄Π²ΠΈΠΆΠΎΠΊ Kivy построСн Π½Π° OpenGL ES 2 с использованиСм соврСмСнного ΠΈ быстрого графичСского ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π°.

    Π’ Π½Π°Π±ΠΎΡ€ инструмСнтов Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π±ΠΎΠ»Π΅Π΅ 20 Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ², всС с высокой ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒΡŽ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ. МногиС части написаны Π½Π° C с использованиСм Cython ΠΈ протСстированы с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ рСгрСссионных тСстов.

    ΠŸΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Ρ ΠΊ установкС Kivy, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ Β«glewΒ». Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ pip, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:

     pip install Docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glew
     

    Π’Π²Π΅Π΄ΠΈΡ‚Π΅ эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Enter, ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ установлСна.ПослС этого Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ввСсти эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ для установки Kivy:

    Π˜Ρ‚Π°ΠΊ, послС установки ΠΏΠΎΠ·Π²ΠΎΠ»ΡŒΡ‚Π΅ ΠΌΠ½Π΅ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π²Π°ΠΌ простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Kivy, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, насколько это просто.

     ΠΈΠ· прилоТСния ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° kivy.app
    ΠΈΠ· kivy.uix.button import Button
    
    класс TestApp (ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅):
        def build (ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ):
            Кнопка Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° (text = "Hello Kivy World")
    
    TestApp (). Run ()
     

    Π’Ρ‹Π²ΠΎΠ΄ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄Π° ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½ΠΈΠΆΠ΅:

    Kivy

    5. wxPython

    Π˜Ρ‚Π°ΠΊ, послСдняя структура графичСского интСрфСйса, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ собираСмся ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, - это wxPython.wxPython - это кроссплатформСнный Π½Π°Π±ΠΎΡ€ инструмСнтов с графичСским интСрфСйсом для языка программирования Python.

    Он позволяСт программистам Python просто ΠΈ Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌ, Π²Ρ‹ΡΠΎΠΊΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ графичСским ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ интСрфСйсом. Он Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² Π²ΠΈΠ΄Π΅ Π½Π°Π±ΠΎΡ€Π° ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Π΅Ρ€Ρ‚Ρ‹Π²Π°ΡŽΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ графичСского интСрфСйса популярной кроссплатформСнной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ wxWidgets, написанной Π½Π° C ++.

    Подобно Python ΠΈ wxWidgets, wxPython ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄.

    wxPython - это кроссплатформСнный инструмСнтарий. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈ Ρ‚Π° ΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.Π’ настоящСС врСмя ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΌΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Microsoft Windows, Mac OS X ΠΈ macOS, Π° Ρ‚Π°ΠΊΠΆΠ΅ Linux.

    Π’Π΅ΠΏΠ΅Ρ€ΡŒ я ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡΡŒ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π²Π°ΠΌ процСсс установки ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ для установки просто Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

    Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

     import wx
    
    класс MyFrame (wx.Frame):
        def __init __ (я, Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ):
            super (MyFrame, self) .__ init __ (Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ, title = title, size = (400,300))
    
    
        self.panel = MyPanel (сам)
    
    
    класс MyPanel (wx.Panel):
        def __init __ (я, Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ):
            супСр (MyPanel, сам).__init __ (Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ)
    
    
    класс MyApp (wx.App):
        def OnInit (self):
            self.frame = MyFrame (parent = None, title = "Окно wxPython")
            self.frame.show ()
            Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ True
    
    app = MyApp ()
    app.MainLoop ()
     

    Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄Π° ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½ΠΈΠΆΠ΅:

    WxPython

    Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

    Π˜Ρ‚Π°ΠΊ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ 5 Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ графичСского интСрфСйса Python ΠΈ, Π½Π° ΠΌΠΎΠΉ взгляд, PySide2 ΠΈ pyQt5 ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡ‰Π½Ρ‹ΠΌΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°ΠΌΠΈ графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Но ΠΎΠ½ΠΈ ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ с коммСрчСской Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ, ΠΈ это ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹.Tkinter, Kivy ΠΈ wxPython - это бСсплатныС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ графичСского интСрфСйса для Python.

    Какая ваша любимая Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° графичСского интСрфСйса Π² Python?

    6 Π»ΡƒΡ‡ΡˆΠΈΡ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² графичСского интСрфСйса Python Π² 2021 Π³ΠΎΠ΄Ρƒ

    ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ

    Python срСди Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΠΎ всСму ΠΌΠΈΡ€Ρƒ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Π° нСсколькими Ρ…ΠΎΡ€ΠΎΡˆΠΎ извСстными указатСлями языков программирования. Но британский Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊ SlashData, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ подсчитал фактичСскоС количСство Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… этот язык.

    По Π΄Π°Π½Π½Ρ‹ΠΌ SlashData Π² 2019 Π³ΠΎΠ΄Ρƒ, сСйчас Π² ΠΌΠΈΡ€Π΅ 8,2 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΠ΄ΠΈΡ€ΡƒΡŽΡ‚ с использованиСм Python, ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ это количСство большС, Ρ‡Π΅ΠΌ Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ создаСт Π½Π° Java, Π° ΠΈΡ… число составляСт 7.6 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ². Π’ сСнтябрС 2018 Π³ΠΎΠ΄Π° Π½Π°ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Π»ΠΎΡΡŒ сСмь ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Python ΠΈ 7,1 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Java.

    ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Python ΠΈΠΌΠ΅Π΅Ρ‚ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎΡ‚ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄ΠΎ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ГрафичСскиС интСрфСйсы ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (GUI) . Python GUI Framework ΠΏΠΎΠ±ΡƒΠΆΠ΄Π°Π΅Ρ‚ нас большС ΡƒΠ·Π½Π°Π²Π°Ρ‚ΡŒ ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° Python.

    Богласно ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ GUI , это интСрфСйс, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ взаимодСйствуСт с элСктронными устройствами, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹, ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρ‹ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ устройства.Π­Ρ‚ΠΎΡ‚ интСрфСйс ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ символы, Π·Π½Π°Ρ‡ΠΊΠΈ, мСню ΠΈ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ для отобраТСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. БвязанныС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ тСкстовым интСрфСйсом, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ прСдставлСны Π² тСкстовой Ρ„ΠΎΡ€ΠΌΠ΅.

    Как Π±Ρ‹Π»ΠΎ сказано Ρ€Π°Π½Π΅Π΅, Python GUI ΠΈΠΌΠ΅Π΅Ρ‚ мноТСство Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΡΡŽΡ‚ всС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Он Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ ΠΊΡ€ΠΎΡΡΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΡƒΡŽ структуру ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим 6 Π»ΡƒΡ‡ΡˆΠΈΡ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Python GUI Π² 2021 Π³ΠΎΠ΄Ρƒ для Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²!

    1.Delphi VCL

    Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ( VCL ) - это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ориСнтированная срСда Π½Π° основС Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Microsoft Windows. Он написан Π½Π° Object Pascal.

    VCL - это Π½Π°Π±ΠΎΡ€ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² для быстрой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Windows Π½Π° языках Delphi ΠΈ C ++. VCL содСрТит ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ…, Π½Π΅Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈ слуТСбных классов для Ρ‚Π°ΠΊΠΈΡ… Π·Π°Π΄Π°Ρ‡, ΠΊΠ°ΠΊ созданиС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Windows, Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.ВсС классы Π² VCL происходят ΠΎΡ‚ TObject. TObject прСдставляСт ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΠ°ΠΊ построСниС, Ρ€Π°Π·Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° сообщСний.

    Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΡ Π΅Π³ΠΎ с Python с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python для Delphi (P4D), Π²Ρ‹ Π»Π΅Π³ΠΊΠΎ выполняСтС сцСнарии Python, создаСтС Π½ΠΎΠ²Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Python ΠΈ Π½ΠΎΠ²Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Python. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Python ΠΊΠ°ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ DLL ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

    P4D позволяСт ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Python Π² качСствС языка сцСнариСв для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Delphi. Он Ρ‚Π°ΠΊΠΆΠ΅ поставляСтся с ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ дСмонстраций ΠΈ руководств, Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΊ использованию ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

    Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ здСсь ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ наш Π²Π²ΠΎΠ΄Π½Ρ‹ΠΉ пост, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ Π½Π°Ρ‡Π°Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Delphi VCL с Python.

    2. ГрафичСский интСрфСйс Tkinter

    Tkinter ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ поставляСтся вмСстС с Python с использованиСм Tk ΠΈ стандартной срСды графичСского интСрфСйса Python. Он популярСн благодаря своСй простотС ΠΈ графичСскому ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌΡƒ интСрфСйсу. Он ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄ ΠΈ доступСн ΠΏΠΎ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ Python.

    Π‘Ρ€Π΅Π΄ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… инструмСнтов графичСского интСрфСйса Python Tkinter являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ срСдой графичСского интСрфСйса Π² Python.А Ρ‚Π°ΠΊΠΆΠ΅ Django Framework ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ графичСский интСрфСйс Tkinter для создания Π²Π΅Π±-страниц.

    Одним ΠΈΠ· прСимущСств Π²Ρ‹Π±ΠΎΡ€Π° Tkinter являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ поставляСтся ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, сущСствуСт мноТСство рСсурсов, ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ΠΎΠ², Ρ‚Π°ΠΊ ΠΈ справочников. Π’Π°ΠΊΠΆΠ΅ с ΡƒΡΡ‚ΠΎΡΠ²ΡˆΠΈΠΌΡΡ ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ сообщСством Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ Π² любом случаС сомнСний.

    3. ГрафичСский интСрфСйс PyQT

    PyQt - это Python UI-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для Qt, ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· популярных кроссплатформСнных GUI-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ², написанных Π½Π° языкС C ++ ΠΈ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… Nokia.Π­Ρ‚ΠΎ привязка Qt, разработанная Riverbank Computing Limited. PyQT ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Windows, OS X, Linux, iOS ΠΈ Android. PyQT ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π΅ Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΈ, ΠΎΠ΄Π½Π° - PyQT4, построСнная ΠΏΡ€ΠΎΡ‚ΠΈΠ² QT 4.x. Π”Ρ€ΡƒΠ³ΠΎΠΉ - PyQT5, построСнный ΠΏΡ€ΠΎΡ‚ΠΈΠ² QT 5.x. Однако Π² основном ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

    ОбС вСрсии совмСстимы с Python 2 ΠΈ 3. ЛицСнзия Π½Π° Π½Π΅Π΅ распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ GPL вСрсии 3. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ Π±Π΅ΡΠΏΠ»Π°Ρ‚Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ, Π½ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Π½Π΅ΠΉ нСдоступны. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Ссли ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½Π°Π΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅, ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄, Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ PyQT с бСсплатной Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ.PyQT сочСтаСт Π² сСбС Π»ΡƒΡ‡ΡˆΠ΅Π΅ ΠΈΠ· QT ΠΈ Python ΠΈ Π·Π°Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» сСбя ΠΊΠ°ΠΊ графичСский ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс. Иногда это большС, Ρ‡Π΅ΠΌ Π½Π°Π±ΠΎΡ€ инструмСнтов Python GUI.

    4. ГрафичСский интСрфСйс Kivy

    Kivy GUI-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ - Π±ΠΎΠ»Π΅Π΅ интСрСсныС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Python, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ Π»ΠΈΡ†Π΅Π½Π·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ MIT ΠΈ основаны Π½Π° OpenGL ES 2. OpenGL ES 2 Π±Ρ‹Π» ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ графичСским API ΠΈ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ самым доступным API для 3D-Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ. Π­Ρ‚ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Python с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ для создания Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса ΠΈ для быстрой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

    Kivy - ΠΎΠ΄Π½Π° ΠΈΠ· Π»ΡƒΡ‡ΡˆΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ графичСского интСрфСйса для Python, созданная Π½Π° основС основного Ρ†ΠΈΠΊΠ»Π°, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π΅ совмСстимой с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΈΠ³Ρ€. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ ΠΈ поддСрТиваСтся ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ ΠΈ Π² основном ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² качСствС коммСрчСских ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ². Π­Ρ‚Π° структура ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π° с графичСским Π΄Π²ΠΈΠΆΠΊΠΎΠΌ Kivy ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ соврСмСнныС ΠΈ быстрыС графичСскиС ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Ρ‹.

    Kivy Python GUI Builder ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΡ‡Ρ‚ΠΈ всС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Windows, Linux, OS X ΠΈ Android. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Kivy - Π±ΠΎΠ»Π΅Π΅ полСзная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° графичСского интСрфСйса, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² Π½Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ ΠΊΠΎΠ΄Ρ‹ для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΈ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Kivy - это Π½Π°Π±ΠΎΡ€ инструмСнтов Python с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ для графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ multi-touch.

    5. ГрафичСский интСрфСйс ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ WxPython

    Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ имя Π² спискС Π»ΡƒΡ‡ΡˆΠΈΡ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Python GUI - WxPython. Π­Ρ‚ΠΎ кроссплатформСнный графичСский ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс Π½Π° языкС программирования Python. Π­Ρ‚ΠΎΡ‚ инструмСнтарий позволяСт программистам ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ высокоэффСктивный Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс Python.

    WxPython - это быстро, Π»Π΅Π³ΠΊΠΎ ΠΈ просто. WxPython создаСтся ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ модуля Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ связываСт элСмСнты графичСского интСрфСйса извСстной кроссплатформСнной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ wxWidget.И эти элСмСнты написаны Π½Π° языкС C ++.

    WxPython ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ доступСн для просмотра ΠΈ измСнСния ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ позволяСт Π΄ΠΎΠ±Ρ€ΠΎΠ²ΠΎΠ»ΡŒΡ†Π°ΠΌ Π²Π½ΠΎΡΠΈΡ‚ΡŒ свой Π²ΠΊΠ»Π°Π΄, ΠΈΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠ»ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Ρ‚ΡŒ Π΄ΠΈΠ·Π°ΠΉΠ½.

    6. ГрафичСский интСрфСйс PySide

    PySide - это бСсплатный кроссплатформСнный Π½Π°Π±ΠΎΡ€ инструмСнтов с графичСским ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ интСрфСйсом Qt, ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΈ спонсируСмый Nokia. Qt - это инфраструктура ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса ΠΈ кроссплатформСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. PySide Π² настоящСС врСмя ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Linux / X11, Mac OS X, Maemo, Windows, Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Android планируСтся Π² блиТайшСм Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ.

    PySide прСдоставляСт инструмСнты для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ°, XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ, ΡΠ΅Ρ‚ΡŒΡŽ, Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ графичСским интСрфСйсом. ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ PySide являСтся Π΅Π³ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ API с PyQt4, поэтому, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° PySide, этот процСсс Π±ΡƒΠ΄Π΅Ρ‚ бСспроблСмным.

    Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

    Π­Ρ‚ΠΎ ΠΎΠ΄Π½ΠΈ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΈ Π»ΡƒΡ‡ΡˆΠΈΡ… доступных Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Python. Π­Ρ‚ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π»Π΅Π³ΠΊΠΎ ΠΈ бСзопасно ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ прилоТСния с графичСским интСрфСйсом. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ срСду графичСского интСрфСйса Python, которая Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для вас, Π² зависимости ΠΎΡ‚ Π²Π°ΡˆΠΈΡ… Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ.

    ΠžΡ†Π΅Π½ΠΈΡ‚Π΅ Python4Delphi, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π»Π΅Π³ΠΊΠΎ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ графичСскиС интСрфСйсы Python для Windows с использованиСм Delphi.

    Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с графичСским интСрфСйсом ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с Python

    Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ Π±Ρ‹Π»Π° ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π° Π² ΠΌΠ°Π΅ 2016 Π³ΠΎΠ΄Π° ΠΈ Π±Ρ‹Π»Π° Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½Π° Π½ΠΎΠ²ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ.

    Π’ ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° программистов наступаСт ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΎΡ‚ основных ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΈ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ графичСский интСрфСйс для своСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

    Π’ Python шаги для Π½Π°Ρ‡Π°Π»Π° программирования с графичСским интСрфСйсом ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π΅ слишком слоТны, Π½ΠΎ ΠΎΠ½ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°Ρ‡Π°Π» Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π²Ρ‹Π±ΠΎΡ€.По своСй ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π΅ ΠΊΠ°ΠΊ язык программирования ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния с ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ, доступными Π²ΠΎ всСх распространСнных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах, Python Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ достаточно агностичСским Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ прСдоставляСт для создания графичСских ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов.

    К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, сущСствуСт мноТСство возмоТностСй для программистов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ простой способ взаимодСйствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ со своими ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ. ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ для Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…, Π² Ρ‚ΠΎΠΌ числС для Linux, Windows ΠΈ Mac, ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π° всСх Ρ‚Ρ€Π΅Ρ….

    ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΈΠ΄Ρ‚ΠΈ дальшС, ΡΡ‚Π°Π½ΡŒΡ‚Π΅ Π½Π° ΠΌΠ³Π½ΠΎΠ²Π΅Π½ΠΈΠ΅ своим собствСнным Π·Π°Ρ‰ΠΈΡ‚Π½ΠΈΠΊΠΎΠΌ дьявола ΠΈ спроситС: Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ смысл для вашСго прилоТСния Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ графичСский ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс? Для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΎΡ‚Π²Π΅Ρ‚ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π΅Π½. Если вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ являСтся графичСским ΠΈ Π»ΠΈΠ±ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ, Π»ΠΈΠ±ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ смысл Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ локально Π½Π° ΠΎΠ΄Π½ΠΎΠΌ локальном ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, Ρ‚ΠΎ Π΄Π°, Π²Π°ΠΌ, вСроятно, слСдуСт ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ создании графичСского интСрфСйса для Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ стола. Часто это становится ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌ ΠΈΠ· Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅.

    Но для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния Π½Π΅ считайтС Π½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку, Π½ΠΈ Π²Π΅Π±-интСрфСйс.Командная строка ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ мноТСство прСимущСств - ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ, ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ доступ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания сцСнариСв ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ, - ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ вашСго прилоТСния, Ρ‡Π΅ΠΌ графичСский интСрфСйс, ΠΈ сущСствуСт мноТСство Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Click, Cement ΠΈ Cliff, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.

    Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ Π²Π΅Π±-интСрфСйс, Π΄Π°ΠΆΠ΅ для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠΉ для локального запуска, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ стоит Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, особСнно Ссли Π²Ρ‹ считаСтС, Ρ‡Ρ‚ΠΎ ваши ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°Ρ…ΠΎΡ‚Π΅Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎ, Π° Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, ΠΊΠ°ΠΊ Django, Flask ΠΈΠ»ΠΈ Pyramid, Π΄Π΅Π»Π°ΡŽΡ‚ это. простой.Π’Ρ‹ Π΄Π°ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ ​​библиотСку, ΠΊΠ°ΠΊ pywebview, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ½ΠΊΡƒΡŽ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ Π²ΠΎΠΊΡ€ΡƒΠ³ Π²Π΅Π±-прилоТСния Π² собствСнноС ΠΎΠΊΠ½ΠΎ графичСского интСрфСйса.

    Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Pyforms, для создания Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎΠ³ΠΎ взаимодСйствия Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅, ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС ΠΈ Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ столС с использованиСм Π΅Π΄ΠΈΠ½ΠΎΠΉ Π±Π°Π·Ρ‹ ΠΊΠΎΠ΄Π°.

    ВсС Π΅Ρ‰Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ графичСский интСрфСйс? ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ, Π²ΠΎΡ‚ нСсколько фантастичСских Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ.

    PyQt, PySide и Qt для Python

    PyQt Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Qt, поэтому, Ссли Π²Ρ‹ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ Qt Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ языкС, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ собствСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для KDE ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ срСды Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ стола Π½Π° основС Qt, Π²Ρ‹, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡƒΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с Qt.Π­Ρ‚ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΉ внСшний Π²ΠΈΠ΄ Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…, с ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ использованиСм инструмСнтов ΠΈ Π·Π½Π°Π½ΠΈΠΉ большого сообщСства Qt.

    Qt Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π·Π°Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» сСбя Π² сообщСствС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ инструмСнты, ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠ΅ это. НаписаниС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Python Π½Π° основС Qt ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ доступ ΠΊ QtCreator, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π΅ΠΆΠΈΠΌ конструктора для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° для ΠΌΠ°ΠΊΠ΅Ρ‚Π° вашСго прилоТСния.

    PyQt ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²ΠΎΠΉΠ½ΡƒΡŽ Π»ΠΈΡ†Π΅Π½Π·ΠΈΡŽ ΠΊΠ°ΠΊ ΠΏΠΎ коммСрчСской, Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎ GPL Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ самого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Qt, ΠΈ основная компания, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰Π°Ρ PyQt, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы ΠΎ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ для вашСго прилоТСния.

    Π’ качСствС Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° использования Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Qt с Python рассмотритС Qt для Python (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ извСстный ΠΊΠ°ΠΊ PySide2), доступный Π² Ρ€Π°ΠΌΠΊΠ°Ρ… LPGL.

    Tkinter

    Если Π±Ρ‹ сущСствовал СдинствСнный ΠΏΠ°ΠΊΠ΅Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π½Π°Π·Π²Π°Ρ‚ΡŒ «стандартным» Π½Π°Π±ΠΎΡ€ΠΎΠΌ инструмСнтов графичСского интСрфСйса для Python, Ρ‚ΠΎ это Π±Ρ‹Π» Π±Ρ‹ Tkinter. Tkinter - это ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° для Tcl / Tk, популярного графичСского интСрфСйса ΠΈ языковой ΠΏΠ°Ρ€Ρ‹, Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ популярной Π² Π½Π°Ρ‡Π°Π»Π΅ 90-Ρ… Π³ΠΎΠ΄ΠΎΠ². ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²ΠΎ Π²Ρ‹Π±ΠΎΡ€Π° Tkinter - это ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство рСсурсов, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΊΠ½ΠΈΠ³ΠΈ ΠΈ ΠΎΠ±Ρ€Π°Π·Ρ†Ρ‹ ΠΊΠΎΠ΄Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ большоС сообщСство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ, Ссли Ρƒ вас Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ вопросы.Π‘ простых ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Π»Π΅Π³ΠΊΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ, ΠΈ ΠΎΠ½ΠΈ довольно ΡƒΠ΄ΠΎΠ±ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹.

    Tkinter доступСн ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ Python ΠΏΠΎΠ²Π΅Ρ€Ρ… Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ BSD Tcl / Tk.

    WxPython

    WxPython пСрСносит ΠΊΡ€ΠΎΡΡΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ графичСского интСрфСйса wxWidgets ΠΈΠ· собствСнного C ++ Π² Python. WxPython выглядит Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ СстСствСнным, Ρ‡Π΅ΠΌ Tkinter, Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ хост-систСмы для создания графичСского интСрфСйса. ΠΠ°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π½ΠΈΠΌ довольно просто, ΠΈ сообщСство Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² постоянно растСт.Π’Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ wxPython с вашими прилоТСниями ΠΈΠ»ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ установил Π΅Π³ΠΎ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ Π½Π΅ устанавливаСтся автоматичСски вмСстС с Python.

    WxPython ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π»ΠΈΡ†Π΅Π½Π·ΠΈΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ wxWindows для своСго Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π½ΠΎΠ³ΠΎ OSI.

    Python GTK + 3

    Π Π°Π½Π΅Π΅ извСстный ΠΊΠ°ΠΊ PyGTK, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Python GTK + 3 обСспСчиваСт привязки Python ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ GTK (ΠΎΠΊΠ½Π°ΠΌ, Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°ΠΌ ΠΈ Ρ‚. Π”.). GTK + Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² качСствС основы для Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ стола GNOME, Π½ΠΎ ΠΎΠ½ доступСн для Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² Linux, Windows ΠΈ Mac.Π‘ Python GTK + 3 такая ΠΆΠ΅ структура доступна для Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Python.

    Когда Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Python GTK + 3, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Ρ‚Π΅Ρ… ΠΆΠ΅ инструмСнтов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ созданы для самого GTK +. Π’ частности, сюда Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Glade, Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€ интСрфСйсов для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ GTK +. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ Π² Glade, ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ XML ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ GtkBuilder Π² ΠΊΠΎΠ΄Π΅ вашСго прилоТСния, Π½ΠΎ интСрфСйс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅, являСтся пСрСтаскиваСмым, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ созданиС динамичСского ΠΈ ΠΎΡ‚Π·Ρ‹Π²Ρ‡ΠΈΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса Π±Π΅Π· нСобходимости ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π² своСм ΠΊΠΎΠ΄Π΅. Ρ€Π°Π·ΡƒΠΌ Π² ΠΊΠΎΠ΄ ΠΌΠ°ΠΊΠ΅Ρ‚Π°.

    Киви

    Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ быстрой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ соврСмСнных устройств, Kivy прСдставляСт собой Π½Π°Π±ΠΎΡ€ инструмСнтов для Linux (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Raspberry Pi), Windows, Mac ΠΈ Android. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ Π½Π° Β«ΠΈΠ½Π½ΠΎΠ²Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ интСрфСйсы» ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ прилоТСния для ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² для Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ² ΠΈ прилоТСния для ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ доски, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠ΅ всю стСну ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†-Π·Π°Π»Π°.

    Kivy Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΠΊΠ΅Ρ‚Π°, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ QtCreator ΠΈ Glade, Π½ΠΎ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ свой собствСнный язык Π΄ΠΈΠ·Π°ΠΉΠ½Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ ΠΌΠ°ΠΊΠ΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΊΠΎΠ΄Π°.Π­Ρ‚ΠΎ позволяСт Π²Π°ΠΌ Π»Π΅Π³ΠΊΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ (ΠΊΠ°ΠΊ мыслСнно, Ρ‚Π°ΠΊ ΠΈ Π² ΠΊΠΎΠ΄Π΅ ΠΌΠ°ΠΊΠ΅Ρ‚Π°) классы ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² вашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. Kivy Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Kivy Garden, Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² ΠΈ надстроСк, поэтому, Ссли Π²Ρ‹ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅ ΠΎ создании Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ, Ρ‡Π΅Π³ΠΎ Π½Π΅ прСдоставляСт сама Kivy, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, это ΡƒΠΆΠ΅ сущСствуСт Π² Garden.


    Π­Ρ‚ΠΎ Π½Π΅ СдинствСнный Π²Ρ‹Π±ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρƒ вас Π΅ΡΡ‚ΡŒ, Π΄Π°ΠΆΠ΅ Π΄Π°Π»Π΅ΠΊΠΎ. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… возмоТностях, посСтитС страницу Β«ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с графичСским интСрфСйсом Π½Π° PythonΒ» Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π²ΠΈΠΊΠΈ-страницС Python Software Foundation, Π³Π΄Π΅ пСрСчислСны дСсятки Π΄Ρ€ΡƒΠ³ΠΈΡ… инструмСнтов.Доступны Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ для привязки Python ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² ΠΈ инструмСнтам графичСского интСрфСйса, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ FLTK, FOX ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ. Π₯отя Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°ΠΌ, вСроятно, слСдуСт ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π°ΡΡ‚ΠΈΡ‡Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈΠ»ΠΈ Ρ‚Π΅Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ большС Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ, сущСствуСт мноТСство Ρ…ΠΎΡ€ΠΎΡˆΠΈΡ… инструмСнтов для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ситуаций.

    МногиС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ для Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΉ Π²ΠΈΠ΄ ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈΡ… Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ срСды Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ стола, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π±Ρ‹Π²Π°ΡŽΡ‚ случаи, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Ρ…ΠΎΡ‚Π΅Ρ‚ΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Π²ΠΈΠ΄Π΅ΠΎΠΈΠ³Ρ€Π΅.Π•ΡΡ‚ΡŒ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для этих ситуаций, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ pygame, pyglet ΠΈ Panda3d.

    Π£ вас Π΅ΡΡ‚ΡŒ Ρ„Π°Π²ΠΎΡ€ΠΈΡ‚, Π½Π΅ упомянутый здСсь? Π”Π°ΠΉΡ‚Π΅ Π½Π°ΠΌ Π·Π½Π°Ρ‚ΡŒ Π² коммСнтариях Π½ΠΈΠΆΠ΅!

    Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ большС ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… статСй? ΠŸΠΎΠ΄ΠΏΠΈΡˆΠΈΡ‚Π΅ΡΡŒ Π½Π° Π½Π°ΡˆΡƒ Π΅ΠΆΠ΅Π½Π΅Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ рассылку новостСй ΠΏΠΎ элСктронной ΠΏΠΎΡ‡Ρ‚Π΅.

    .

    Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

    Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *