Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
 Аватар для Glebmanager@mai
2 / 2 / 0
Регистрация: 08.02.2013
Сообщений: 52

Как описать свойство в классе?

26.05.2015, 13:27. Показов 1276. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, джентельмены!

Проблема в следующем:

Как-то одним прекрасным утром я решил попробовать создать класс с описанием кнопки (Tk) ибо надоело каждый раз писать один и тот-же елемент (в больших проектах). И с ужасом понял шо не могу этого сделать.

Максимум чего я добился это наследование

Python
1
2
3
4
5
6
7
8
9
10
class B_1(Button):
    pass
 
root=Tk()
 
obj_1=B_1
 
obj_1.pack()
 
root.mainloop()
такой код выдает кнопку на окне безо всяких свойств

однако, при любой попытке описать свойства кнопки либо вылетает ошибка либо ничего не меняется

подскажите плиз как прописать свойства

желателен пример хотябы с одним text='yehhu', например, заранее признателен.

P.S. в гугле не забанен, ничего не нашел по крайне мере на русском единственное дельное описание встретилось вот тут

http://pythonworld.ru/osnovy/i... rfizm.html

и вот тут

http://habrahabr.ru/post/145835/
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.05.2015, 13:27
Ответы с готовыми решениями:

Описать свойство в классе
помогите описать свойства get set в этом коде using System; using System.Collections.Generic; using System.Linq; using System.Text;...

Как удалить свойство в классе
привет . Как удалить свойство в классе?(Незнаю насколько этот прием уместен в рамках ООП,наверно нет) class Product { static...

Как изменить свойство класса, находясь в другом классе?
using System; using System.Collections.Generic; namespace HW4 { class Program { static void Main(string...

18
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
26.05.2015, 14:15
Основная идея, что все виджеты, которые у тебя всегда присутствуют в окне ты выносишь в базовый класс, а в дочернем можешь добавлять новые или переопределять базовые и т д

Ну грубо говоря это выглядит так:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import tkinter
 
 
class BaseWindow(tkinter.Frame):
    def __init__(self, root, size):
        super().__init__(root, **size)
        self.place(relx=0.5, rely=0.5, anchor="center")
        self.pack_propagate(False)
 
        self.build_widget()
 
    def build_widget(self):
        self.text = tkinter.Label(self, text='Приветсвие по умолчанию')
        self.text.pack()
 
 
class MyWindow(BaseWindow):
    def __init__(self, root):
        super().__init__(root, {'width': 350, 'height': 250})
 
        but = tkinter.Button(text='Ok')
        but.pack(side='bottom')
 
root = tkinter.Tk()
root.geometry('350x250+100+100')
main_window = MyWindow(root)
root.mainloop()
Вообще советую бросить тебе этот tkinter, он г полное.
1
 Аватар для Glebmanager@mai
2 / 2 / 0
Регистрация: 08.02.2013
Сообщений: 52
27.05.2015, 12:33  [ТС]
спасибо большое

однако есть еще пара вопросов:

1 обязательно-ли наследование от своего класса? тоесть если попытаться сразу наследовать от tkintera то ничего не выйдет? или выйдет

2 в чем смысл кода который Вы описали в ините первого класса

3 почему г?))

4 что можно рассмотреть как альтернативу?)) у меня третья ветка питона, хотя и на второй было раньше пару проектов, но тамошняя компиляция в екзе меня просто убивала)
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
27.05.2015, 13:00
Лучший ответ Сообщение было отмечено Glebmanager@mai как решение

Решение

Цитата Сообщение от Glebmanager@mai Посмотреть сообщение
обязательно-ли наследование от своего класса?
Ты создаешь свой (базовый) класс, в котором определяешь все нужные элементы и потом его наследуешь. Это делается, чтобы не дублировался код.
Вообще я не понял смысла твоего вопроса, потому что он абсурден. Ты же сам написал, что не хочешь одно и тоже много раз подряд.
Цитата Сообщение от Glebmanager@mai Посмотреть сообщение
оесть если попытаться сразу наследовать от tkintera то ничего не выйдет?
Так получается обычная работа, опять будет все писать по 10 раз.

Цитата Сообщение от Glebmanager@mai Посмотреть сообщение
в чем смысл кода который Вы описали в ините первого класса
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def __init__(self, root, size):
    # Наследую базовый класс, если бы писали не в ООП стиле, то эта 
    # строка выглядела бы так: tkinter,Frame(root, **size)
    super().__init__(root, **size)
    
    # наш класс это рамка, которую мы размещаем на главном окне (root)
    # с помощью метода place по центру окна
    self.place(relx=0.5, rely=0.5, anchor="center")
    
    # Указываем компановщику, что наш виджет должен всегда занимать 
    # все доступное ему пространство, а не сжиматься/расширяться в
    # зависимости от виджетов находящихся в нём
    self.pack_propagate(False)
 
    self.build_widget()  # Запускает построение базовых виджетов
Цитата Сообщение от Glebmanager@mai Посмотреть сообщение
почему г?))
- приложение написанное с её помощью будет выглядеть "инородным" (то есть на пример в window 7, окно на tkinter выглядит как из window 95 и такая петрушка на всех платформах)
- запустив приложение на другой платформе увидишь, что виджеты "поплывут" (что-то вроде лишних отступов) и получится, что приложение будет выглядеть не как задумано, нужно для одной платформы виджеты одних размеров создавать, для другой других и т д
- менеджеры компановки убогие (привет предыдущий минус), то есть если ты захочешь сделать окно, виджеты которого будут перестраиваться в зависимости от размера окна, то это тебе надо будет писать самому. В pyqt это из коробки на пример. Растягиеваешь окно виджеты растягиваются, перемещаются и т д
- нету кучи виджетов, которые вроде как должны были-бы быть в стандартном наборе (например виджет для отображения времени). Будешь все это писать сам.
- куцый функционал по сравнению с нормальными библиотеками типа pyqt.
в общем и так далее и тому подобное

P.S
Я сначала начинал с tkinter, но вдоволь написавшись велосипедов и потратив кучу времени решил, что это "удовольствие" не для меня.

Цитата Сообщение от Glebmanager@mai Посмотреть сообщение
что можно рассмотреть как альтернативу?
pyqt
1
 Аватар для Glebmanager@mai
2 / 2 / 0
Регистрация: 08.02.2013
Сообщений: 52
27.05.2015, 13:26  [ТС]
Вот теперь все понятно спасибо, реально спасибо что не пожалел времени и знаний

ну в моем случае для кросплатфоремнности еще ОЧЕНЬ далеко, но pyqt обязательно начну изучать


Цитата Сообщение от alex925 Посмотреть сообщение
ы создаешь свой (базовый) класс, в котором определяешь все нужные элементы и потом его наследуешь. Это делается, чтобы не дублировался код.
Вообще я не понял смысла твоего вопроса, потому что он абсурден. Ты же сам написал, что не хочешь одно и тоже много раз подряд.
я спрашивал нельзя ли вызывать элементы из базового класса чтобы его не наследовать, но я уже понял ответ на свой вопрос

и еще раз спасибо за расшифровку скрипта
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
27.05.2015, 13:27
Цитата Сообщение от Glebmanager@mai Посмотреть сообщение
ну в моем случае для кросплатфоремнности еще ОЧЕНЬ далеко
Да дело не в кроссплатформенности, даже если кодить для 1 платформы tkinter это ад и тонна велосипедов.
1
 Аватар для Glebmanager@mai
2 / 2 / 0
Регистрация: 08.02.2013
Сообщений: 52
01.06.2015, 12:47  [ТС]
Вобщем благодаря alex925 таки сделал что хотел. Оказалось что наследовать свой класс от родительского вовсе не необходимо. Моя ошибка заключалась в том что я не передал необходимый аргумент root при создании класса и не указал его при создании объекта класса. Вобщем итоговой код выглядит вот так:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class MyButton():
    def __init__(self, root):
 
        def printer_1(event):
            root.destroy()
            print('ehhhuuuu')
 
      
 
        but = tkinter.Button(text='Ok')
        but.bind('<Button-1>',printer_1)
        but.pack(side='bottom')
 
 
root = tkinter.Tk()
main_window = MyButton(root)
root.mainloop()
В данном примере мы создаем класс кнопки уничтожающей окно, ну и в def-е класс естесно можно прописать все что нам нужно (в моем случае запуск события с главным меню) Вобщем вот... мож кому пригодится

А вобще pyqt выглядит многообещающе но я еще только в процессе его курения однако даже на данной стадии могу посоветовать отсальным тож переходить на него
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
01.06.2015, 18:41
Цитата Сообщение от Glebmanager@mai Посмотреть сообщение
Вобщем итоговой код выглядит вот так:
Какой ужас.... Лучше бы я не открывал тему и не видел этого....
Цитата Сообщение от Glebmanager@mai Посмотреть сообщение
Оказалось что наследовать свой класс от родительского вовсе не необходимо
Ну то, что сделал ты вообще не несёт ни какого логического содержания.
Цитата Сообщение от Glebmanager@mai Посмотреть сообщение
Вобщем вот... мож кому пригодится
За такой код по рукам бить надо, а ты его ещё другим предлагаешь. Не обижайся, но код по всем параметрам ужасен

Мой код идеологически правильный (в отношении использования классов вообще) и практически правильный, а ты просто запихнул создание кнопки в класс причем не понятно зачем.

Добавлено через 3 минуты
Glebmanager@mai, тебе нужно почитать про использование классов и их базовые концепции (инкапсуляция, полиморфизм и наследование). Очень советую тебе про это почитать. Основы можно прочесть у Лутца в книге Изучаем python.
0
 Аватар для Glebmanager@mai
2 / 2 / 0
Регистрация: 08.02.2013
Сообщений: 52
02.06.2015, 10:10  [ТС]
1 а что собственно ужасного?) работает? работает, компилируется? компилируется))) не вижу ничего особо страшного

2 как это не несет? я-же писал что меня заколебало для каждого отдельного окна создавать свою кнопку и свое событие это очень неудобно и много лишних буков получается. А теперь у меня есть класс который я могу вызвать в любом месте всего одной строчкой, помоему это совсем не лишено смысла

3 Ну у меня возник вопрос, я его решил решение написал для людей которые сталкиваются с аналогичными проблемами (ибо я когда гуглил ни нашел НИ ОДНОГО примера с работоспособными классами-виджетами, может плохо гуглил конешн, но все-же) и яж не говорю что мое решение суперправильное и единственно верное, я говорю что оно компактное и работает, а это правда, не обижайся но код предложенный тобой очень громоздкий а в данной ситуации я не вижу смысла огрод городить, это кстати вполне сочетается с дзеном Питона, разве нет?)

4 Лутца я начинал читать когда-то но что-то не вкатило, мне проще читать посты на хабре на соответствующие темы, главу про классы посмотрю.

5 критикуете - объясняйте давайте детально чем код плох а не абстрактно "по всем параметрам ужасен" надоже-жь мне понять почему я бездарен
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
02.06.2015, 12:00
Цитата Сообщение от Glebmanager@mai Посмотреть сообщение
Лутца я начинал читать когда-то но что-то не вкатило
Плохо, отличный автор и все понятно излагает. Правда 4 издание книги, по началу действительно тяжело читать, потому что по сравнению с 3 там очень много дополнений.

Цитата Сообщение от Glebmanager@mai Посмотреть сообщение
мне проще читать посты на хабре
Там полезно читать, когда уже имеешь основу, иногда даже не плохую основу.

Цитата Сообщение от Glebmanager@mai Посмотреть сообщение
критикуете - объясняйте давайте детально чем код плох а не абстрактно "по всем параметрам ужасен"
Тут не учебное заведение, я немогу писать тебе тут всю теорию классов, а чтобы тебе понять почему твой код ущербный надо это знать.
Я опишу в кратце, но не уверен, что ты все поймёшь.

Цитата Сообщение от Glebmanager@mai Посмотреть сообщение
не вижу ничего особо страшного
Не видишь, потому что не знаешь основ классов. Адам и Ева тоже не понимали, что они творят.

Цитата Сообщение от Glebmanager@mai Посмотреть сообщение
работает, компилируется? компилируется)))
Если запускается, это значит лишь, то что ты не допустил синтаксических ошибок, но на правильность это ни коим образом не указывает.

Цитата Сообщение от Glebmanager@mai Посмотреть сообщение
а что собственно ужасного?)
Список длинный, вкратце вот так.
1. Создание класса это ресурсоёмкая операция и если класс крохотный как у тебя (так ты ещё и не используешь основные принципы классов, об этом ниже). Все это делает лишает этот код смысла, так ещё и делает его не оптимальным.
P.S про маленькие классы кстати есть статья на хабре ("Прекратите создавать микро классы" примерно так называется)
2. Как я уже говорил в первом посте, ты не используешь у себя ни наследование, ни полиморфизм, ни инкапсуляцию + явно видно, что ты не понимаешь, что класс это "фабрика объектов" + не понимаешь в чем фишка работы с объектами (я про поведение объекта, которое можно подгонять под себя с помощью (наследования, инкапсуляции и полиморфизма) и использования магических методов)
У тебя код, просто в функциональном стиле (Да и он страдает. Вкладывать объявление функции в другую в данном случае ни к чему.)

На данный момент могу тебе только ещё раз посоветовать прочитать про концепции ООП и раз ты "упорствуешь в своём невежестве", то хотя бы переписать этот код в чисто функциональном стиле.
Чтобы это выглядело примерно так:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import tkinter
 
 
def printer_1(event):
    root.destroy()
    print('ehhhuuuu')
 
 
def create_button(window, text, run):
    but = tkinter.Button(window, text=text)
    but.bind('<Button-1>', run)
    but.pack(side='bottom')
    return but
 
 
root = tkinter.Tk()
button = create_button(root, 'Закрыть', printer_1)
root.mainloop()
0
 Аватар для Glebmanager@mai
2 / 2 / 0
Регистрация: 08.02.2013
Сообщений: 52
02.06.2015, 12:33  [ТС]
1 у него очень много теории а мне больше понятно на практике, сейчас вот начал читать его статью про классы, не увидел ничего нового лишь теория-теория-теория. ну может дальше будет что поинтереснее

2 я нескромно оцениваю свои знания о питоне на троечку из 5-ти в последнее время просто больше веб направлением занимался граб селениум и тд.... но решил что пришла таки пора осваивать классы ибо без их знания программирование не программирование а так детский садик

3 я насколько я понимаю класс - это некий макет твоего объекта например нужно тебе часто создавать один и тот-же объект с незначительными изменениями то лепишь макет а при вызове изменяешь параметры которые нужны ну и методы вызываешь только те которые нужны как-то так вобще у меня есть пара "классов" для больших объектов, но они настолько ущербны что просто ужас, мне их даже выкладывать стыдно, вот я и решил на примере маленького класса научиться создавать нормальные. у меня была идея сделать все через def-ы, их я люблю и понимаю, вобще в последнее время пишу все через них, но это-бы не приблизило меня к пониманию классов а постигнуть их таки хочется

4 про ресурсоемкость тут ты конешн прав но с сегодняшним железом это не есть проблема темболее для скромного любителя вроде меня у меня скромные запросы

5 статью читал еще когда пытался сам разобраться, насколько я помню там имелось ввиду что нет смысла писать класс и вызывать его 1 раз за всю прогу, хотя после твоих ответов я понимаю иной смысл

6 вобщем почитаем будем бороться с невежеством надо-же как-то осваивать тему я еще напишу сюда как будут вопросы) а они точно появятся
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
02.06.2015, 12:53
Цитата Сообщение от Glebmanager@mai Посмотреть сообщение
не увидел ничего нового лишь теория-теория-теория.
Практика без теория мертва. Да теорию он всю на примерах объясняет. Как сейчас помню там речь идёт о машине для приготовления пиццы.
Цитата Сообщение от Glebmanager@mai Посмотреть сообщение
тут ты конешн прав но с сегодняшним железом
Наличие мощного железа не разрешает дико быдлокодить. Даже на мощном железе заметно сильно замедляется программа от неправильно написанного кода. Если интересно поищи тут тема недавно была, где человек выложил архив с кодом (кажется он писал шифратор) и ему помогали её оптимизировать. Так вот за счёт более правильно продуманного кода её ускорили на 100% (примерно так или около этого) если мне память не изменяет. Точно помню, что ускорение было значительное.
Цитата Сообщение от Glebmanager@mai Посмотреть сообщение
насколько я помню там имелось ввиду что нет смысла писать класс и вызывать его 1 раз за всю прогу,
Не только об этом речь. Ещё так-же говорилось, что нет смысла писать класс, когда там всего примерно 2 метода и один из них __init__.
0
 Аватар для Glebmanager@mai
2 / 2 / 0
Регистрация: 08.02.2013
Сообщений: 52
05.06.2015, 15:40  [ТС]
Цитата Сообщение от alex925 Посмотреть сообщение
class BaseWindow(tkinter.Frame):
* * def __init__(self, root, size):
* * * * super().__init__(root, **size)
* * * * self.place(relx=0.5, rely=0.5, anchor="center")
* * * * self.pack_propagate(False)
self.build_widget()
вопрос как в данном случае передать цвет рамки, например bg='green'?) и почему возникают проблемы при распаковке на рамку виджетов созданных вне класса? это можно как-то обойти, в моем случае пишет что отсутствует необходимый элемент tk
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
05.06.2015, 15:59
Цитата Сообщение от Glebmanager@mai Посмотреть сообщение
и почему возникают проблемы при распаковке на рамку виджетов созданных вне класса?
Эмм, чего?
Цитата Сообщение от Glebmanager@mai Посмотреть сообщение
вопрос как в данном случае передать цвет рамки, например bg='green'?)
Элементарно
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import tkinter
 
 
class BaseWindow(tkinter.Frame):
    def __init__(self, root, **kwargs):
        super().__init__(root, **kwargs)
        self.place(relx=0.5, rely=0.5, anchor="center")
        self.pack_propagate(False)
 
        self.build_widget()
 
    def build_widget(self):
        self.text = tkinter.Label(self, text='Приветсвие по умолчанию')
        self.text.pack()
 
 
class MyWindow(BaseWindow):
    def __init__(self, root):
        super().__init__(root, width=350, height=250, bg='red')
 
        but = tkinter.Button(text='Ok')
        but.pack(side='bottom')
 
root = tkinter.Tk()
root.geometry('350x250+100+100')
main_window = MyWindow(root)
root.mainloop()
1
 Аватар для Glebmanager@mai
2 / 2 / 0
Регистрация: 08.02.2013
Сообщений: 52
05.06.2015, 16:04  [ТС]
получается это при наследовании уже когда создаем экземпляр, а именно заранее объявить ну условно чтобы ВСЕ РАМКИ были зелеными
Цитата Сообщение от alex925 Посмотреть сообщение
Сообщение от Glebmanager@mai
и почему возникают проблемы при распаковке на рамку виджетов созданных вне класса?
Эмм, чего?
сейчас я поэксперементирую еще немного если не получится решить спрошу
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
05.06.2015, 16:08
Цитата Сообщение от Glebmanager@mai Посмотреть сообщение
а именно заранее объявить
Значение нужного аргумента по умолчанию задай и все
0
 Аватар для Glebmanager@mai
2 / 2 / 0
Регистрация: 08.02.2013
Сообщений: 52
05.06.2015, 16:22  [ТС]
Цитата Сообщение от alex925 Посмотреть сообщение
Сообщение от Glebmanager@mai
а именно заранее объявить
Значение нужного аргумента по умолчанию задай и все
это итак понятно в какой строчке это сделать? ни в 4-ой ни в 5-ой не получается ошибку выдает, self.bg при вызове класса начинает аргумент требовать. А больше описаний рамки я не вижу
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
05.06.2015, 16:30
Лучший ответ Сообщение было отмечено Glebmanager@mai как решение

Решение

Цитата Сообщение от Glebmanager@mai Посмотреть сообщение
это итак понятно в какой строчке это сделать?ни в 4-ой ни в 5-ой не получается ошибку выдает
Без комментариев
Цитата Сообщение от Glebmanager@mai Посмотреть сообщение
ни в 4-ой
Вот это вообще добило
Python
1
2
3
class BaseWindow(tkinter.Frame):
    def __init__(self, root, bg='red', **kwargs):
        super().__init__(root, bg=bg, **kwargs)
1
 Аватар для Glebmanager@mai
2 / 2 / 0
Регистрация: 08.02.2013
Сообщений: 52
05.06.2015, 16:33  [ТС]
Цитата Сообщение от alex925 Посмотреть сообщение
def __init__(self, root, bg='red', **kwargs):
* * * * super().__init__(root, bg=bg, **kwargs)
в первой а потом наследовать ясно спасибо

думаю это не последний мой глупый вопрос
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.06.2015, 16:33
Помогаю со студенческими работами здесь

Как переопределить существующее свойство компонента в классе-перехватчике?
К компоненту TLabel в классе-перехватчике добавлено новое свойство: float FValue; //... __property float Value =...

Как описать struct в классе?
Описать структуру типа &quot;Точка в пространстве&quot; и класс &quot;Прямая в пространстве&quot;, В частности: &quot;Точка&quot; содержит поля...

Dictionary: как правильно описать свойство set {}
Есть класс, например public class A { string value1; string valuse2; public A() { ...

Как можно описать массив и переменные в классе?
Добрый день. Можно описать массив и переменные внутри класса? Код программы: var Form1: TForm1; implementation {$R...

Как описать свой класс в своём классе?
Как описать свой класс в своём классе? Почему он его не видит? Помогите Ошибка: Undeclared identifier: 'TBBB' Type TAAA =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru