Справочник Программиста
6.28K subscribers
1.36K photos
387 videos
64 files
1.71K links
По рекламе - @it_start_programmer
Мои курсы - @courses_from_it_start_bot
Сайт - https://it-start.online/
YouTube - https://www.youtube.com/@it_start
Реклама на бирже - https://telega.in/c/programmersGuide_1

Предложить идею: @it_start_suggestion_bot
Download Telegram
#TkinterFrame
Код из видео:

frame_top = Frame(root) # root можно не указывать
frame_top.pack(side=LEFT)
label_1 = Label(frame_top, width=7, height=4, bg='yellow', text="1")
label_1.pack(side=LEFT)
label_2 = Label(frame_top, width=7, height=4, bg='orange', text="2")
label_2.pack(side=LEFT)

frame_bottom = Frame(root)
frame_bottom.pack(side=LEFT)
label_3 = Label(frame_bottom, width=7, height=4, bg='lightgreen', text="3")
label_3.pack(side=LEFT)
label_4 = Label(frame_bottom, width=7, height=4, bg='lightblue', text="4")
label_4.pack(side=LEFT)

Кроме Frame существует похожий класс LabelFrame – фрейм с подписью.
В отличие от простого фрейма у него есть свойство text:

frame_top = LabelFrame(text="Верх")
frame_top.pack()
label_1 = Label(frame_top, width=7, height=4, bg='yellow', text="1")
label_1.pack(side=LEFT)
label_2 = Label(frame_top, width=7, height=4, bg='orange', text="2")
label_2.pack(side=LEFT)

frame_bottom = LabelFrame(text="Низ")
frame_bottom.pack()
label_3 = Label(frame_bottom, width=7, height=4, bg='lightgreen', text="3")
label_3.pack(side=LEFT)
label_4 = Label(frame_bottom, width=7, height=4, bg='lightblue', text="4")
label_4.pack(side=LEFT)

Горизонтальное расположение

frame_top.pack(side=LEFT)
frame_bottom.pack(side=LEFT)
создал свой блокнот)
В нём есть светлая и тёмная тема, так же возможность изменить шрифт
👍3
#Задачиpython
Код из видео:

print('A(x1; y1):')
x1 = float(input('x1 = '))
y1 = float(input('y1 = '))

print('B(x1; y1):')
x2 = float(input('x2 = '))
y2 = float(input('y2 = '))

print('Уравнение:')

k = (y1 - y2) / (x1 - x2)
b = y2 - k * x2
print('\ty = %.2f*x + %.2f' % (k, b))
notepad.ico
264.1 KB
#TkinterБлокнот
Код из видео:

from tkinter import *

root = Tk()
root.title('Текстовый редактор')
root.geometry('600x700')
root.iconbitmap('notepad.ico')


f_text = Frame(root)
f_text.pack(fill=BOTH, expand=1)

text_fild = Text(f_text,
bg='black',
fg='lime',
padx=10,
pady=10,
wrap=WORD,
insertbackground='brown',
selectbackground='#8D917A',
spacing3=10,
width=30
)
text_fild.pack(expand=1, fill=BOTH, side=LEFT)

scroll = Scrollbar(f_text, command=text_fild.yview)
scroll.pack(side=LEFT, fill=Y)
text_fild.config(yscrollcommand=scroll.set)

root.mainloop()
#TkinterБлокнот
Код из видео:

from tkinter import *

root = Tk()
root.title('Текстовый редактор')
root.geometry('600x700')
root.iconbitmap('notepad.ico')

main_menu = Menu(root)

# Файл
file_menu = Menu(main_menu, tearoff=0)
file_menu.add_command(label='Открыть')
file_menu.add_command(label='Сохранить')
file_menu.add_separator() # Полоска в менюшке
file_menu.add_command(label='Закрыть')
root.config(menu=file_menu)

# Вид
view_menu = Menu(main_menu, tearoff=0)
view_menu_sub = Menu(view_menu, tearoff=0)
font_menu_sub = Menu(view_menu, tearoff=0)
view_menu_sub.add_command(label='Тёмная')
view_menu_sub.add_command(label='Светлая')
view_menu.add_cascade(label='Тема', menu=view_menu_sub)

font_menu_sub.add_command(label='Arial')
font_menu_sub.add_command(label='Comic Sans MS')
font_menu_sub.add_command(label='Times New Roman')
view_menu.add_cascade(label='Шрифт...', menu=font_menu_sub)
root.config(menu=view_menu)

# Добавление списков меню
main_menu.add_cascade(label='Файл', menu=file_menu)
main_menu.add_cascade(label='Вид', menu=view_menu)
root.config(menu=main_menu)

f_text = Frame(root)
f_text.pack(fill=BOTH, expand=1)

text_fild = Text(f_text,
bg='black',
fg='lime',
padx=10,
pady=10,
wrap=WORD,
insertbackground='brown',
selectbackground='#8D917A',
spacing3=10,
width=30
)
text_fild.pack(expand=1, fill=BOTH, side=LEFT)

scroll = Scrollbar(f_text, command=text_fild.yview)
scroll.pack(side=LEFT, fill=Y)
text_fild.config(yscrollcommand=scroll.set)

root.mainloop()
#TkinterБлокнот
Код из видео:

from tkinter import *
from tkinter import messagebox
from tkinter import filedialog


def chenge_theme(theme):
text_fild['bg'] = view_colors[theme]['text_bg']
text_fild['fg'] = view_colors[theme]['text_fg']
text_fild['insertbackground'] = view_colors[theme]['cursor']
text_fild['selectbackground'] = view_colors[theme]['select_bg']


def chenge_fonts(fontss):
text_fild['font'] = fonts[fontss]['font']


def notepad_exit():
answer = messagebox.askokcancel('Выход', 'Вы точно хотите выйти?')
if answer:
root.destroy()


def open_file():
file_path = filedialog.askopenfilename(title='Выбор файла', filetypes=(('Текстовые документы (*.txt)', '*.txt'), ('Все файлы', '*.*')))
if file_path:
text_fild.delete('1.0', END)
text_fild.insert('1.0', open(file_path, encoding='utf-8').read())


def save_file():
file_path = filedialog.asksaveasfilename(filetypes=(('Текстовые документы (*.txt)', '*.txt'), ('Все файлы', '*.*')))
f = open(file_path, 'w', encoding='utf-8')
text = text_fild.get('1.0', END)
f.write(text)
f.close()


root = Tk()
root.title('Текстовый редактор')
root.geometry('600x700')
root.iconbitmap('notepad.ico')

main_menu = Menu(root)

# Файл
file_menu = Menu(main_menu, tearoff=0)
file_menu.add_command(label='Открыть', command=open_file)
file_menu.add_command(label='Сохранить', command=save_file)
file_menu.add_separator()
file_menu.add_command(label='Закрыть', command=notepad_exit)
root.config(menu=file_menu)

# Вид
view_menu = Menu(main_menu, tearoff=0)
view_menu_sub = Menu(view_menu, tearoff=0)
font_menu_sub = Menu(view_menu, tearoff=0)
view_menu_sub.add_command(label='Тёмная', command=lambda: chenge_theme('dark'))
view_menu_sub.add_command(label='Светлая', command=lambda: chenge_theme('light'))
view_menu.add_cascade(label='Тема', menu=view_menu_sub)

font_menu_sub.add_command(label='Arial', command=lambda: chenge_fonts('Arial'))
font_menu_sub.add_command(label='Comic Sans MS', command=lambda: chenge_fonts('CSMS'))
font_menu_sub.add_command(label='Times New Roman', command=lambda: chenge_fonts('TNR'))
view_menu.add_cascade(label='Шрифт...', menu=font_menu_sub)
root.config(menu=view_menu)

# Добавление списков меню
main_menu.add_cascade(label='Файл', menu=file_menu)
main_menu.add_cascade(label='Вид', menu=view_menu)
root.config(menu=main_menu)

f_text = Frame(root)
f_text.pack(fill=BOTH, expand=1)

view_colors = {
'dark': {
'text_bg': 'black', 'text_fg': 'lime', 'cursor': 'brown', 'select_bg': '#8D917A'
},
'light': {
'text_bg': 'white', 'text_fg': 'black', 'cursor': '#A5A5A5', 'select_bg': '#FAEEDD'
}
}

fonts = {
'Arial': {
'font':'Arial 14 bold'
},
'CSMS': {
'font': ('Comic Sans MS', 14, 'bold')
},
'TNR': {
'font': ('Times New Roman', 14, 'bold')
}
}

text_fild = Text(f_text,
bg='black',
fg='lime',
padx=10,
pady=10,
wrap=WORD,
insertbackground='brown',
selectbackground='#8D917A',
spacing3=10,
width=30,
font='Arial 14 bold'
)
text_fild.pack(expand=1, fill=BOTH, side=LEFT)

scroll = Scrollbar(f_text, command=text_fild.yview)
scroll.pack(side=LEFT, fill=Y)
text_fild.config(yscrollcommand=scroll.set)

root.mainloop()
❤‍🔥4
from newspaper import Article

url = ''

article = Article(url)

article.download()
article.parse()

print(article.title)
print(article.text)
Надеюсь вас не напрягают эти чёрные полосы, которые теперь присутствуют в видео.
Это нужно для улучшения качества видео)
#ГенераторИдей
Код из видео:

from random import *

idea = []
words = open('words.txt', encoding='utf-8')
for i in words:
idea.append(i.replace('\n', ''))

enterWord = ''
print('Генератор идей')

while enterWord != 'exit':
print(idea[randint(0, len(idea) - 1)] + '-' + idea[randint(0, len(idea) - 1)])
enterWord = input('Для генерации следующей пары слов нижмите \'Enter\', \n для выхода нажмите \'exit\'')
#pygame
Код из видео:

import pygame

pygame.init()
screen = pygame.display.set_mode((400, 400))
pygame.display.set_caption('Тестовый заголовок')

RED = (255, 0, 0)
running = True
while running:
pygame.time.delay(100)

for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill(RED)
pygame.display.flip()
pygame.quit()