customtkinter — правило для Cursor: структура и оформление Python UI
Правило для Cursor подсказывает, как организовать приложение на customtkinter: вынести логику интерфейса в класс и последовательно настроить оформление.
.cursor/rules/customtkinter.mdcЧто делает customtkinter
Правило задаёт рекомендации по структуре Python-приложений на customtkinter. Оно предлагает строить приложение на основе класса, наследующего customtkinter.CTk, чтобы держать логику интерфейса в одном месте и проще управлять состоянием. Это помогает не смешивать обработчики событий с созданием виджетов.
Отдельное внимание уделяется настройке темы и организации компонентов. В примере показан процедурный вариант с окном, подписью и кнопкой, где обработчик печатает сообщение при нажатии. Правило противопоставляет такой подход классовой структуре приложения.
Cursor применяет правило к файлам Python по шаблону **/*.py. Само правило не устанавливает customtkinter и не заменяет библиотеку: оно задаёт ориентиры для кода, который пишет или меняет агент. Если проект использует другой GUI-фреймворк, рекомендации по customtkinter могут оказаться неприменимыми.
Какие задачи решает
- Организовать интерфейс на customtkinter через класс приложения
- Отделить обработчики событий от создания виджетов
- Привести настройку темы к единому подходу
- Упростить управление состоянием интерфейса
Примеры запросов агенту
- Перестрой приложение на
customtkinterтак, чтобы классCTkсодержал логику интерфейса. - Раздели создание виджетов и обработку нажатий кнопок в моём Python-приложении.
- Проверь файлы Python на соответствие правилам организации интерфейса на
customtkinter.
Как установить customtkinter
Вручную: положить файлы
.cursor/rules/customtkinter.mdcВо frontmatter: description, globs, alwaysApply
Вручную: положить файлы
.claude/rules/customtkinter.mdПоле paths во frontmatter ограничивает файлы: globs из источника → paths
AGENTS.md
Codex читает AGENTS.md: вставьте текст правила туда
Вручную: положить файлы
.github/instructions/customtkinter.instructions.mdПоле applyTo задаёт, к каким файлам применять: globs из источника → applyTo
Вручную: положить файлы
.devin/rules/customtkinter.mdВручную: положить файлы
.clinerules/customtkinter.mdПо шагам, с командами для каждой платформы: Cursor rules: файлы .mdc, четыре режима и замена .cursorrules
Вопросы о customtkinter
Как установить правило customtkinter в Cursor?
Добавь файл правила по пути .cursor/rules/customtkinter.mdc в проект. Cursor применяет его к Python-файлам, подходящим под шаблон **/*.py.
Что делает правило customtkinter?
Оно направляет агента при написании и изменении интерфейсов на customtkinter. Основной акцент сделан на классовой структуре приложения, управлении состоянием и настройке оформления.
К каким файлам применяется правило?
Правило предназначено для файлов, соответствующих шаблону **/*.py. Оно ориентировано на приложения с customtkinter, а не на все Python-проекты без разбора.
Исходный текст
customtkinter.mdc · CC0-1.0
---
description: Definitive guidelines for writing clean, maintainable, and performant customtkinter applications. This rule file enforces best practices for code structure, theming, component architecture, and common pitfalls.
globs: **/*.py
---
# customtkinter Best Practices
This document outlines the definitive best practices for developing applications with `customtkinter`. Adhering to these guidelines ensures your UI code is consistent, maintainable, performant, and leverages the full power of the library.
## 1. Code Organization: Class-Based Applications
Always structure your `customtkinter` applications using a class that inherits from `customtkinter.CTk`. This encapsulates UI logic, promotes modularity, and simplifies state management.
❌ BAD: Procedural spaghetti code
```python
import customtkinter as ctk
# Theme setup (often forgotten or inconsistent)
ctk.set_appearance_mode("System")
ctk.set_default_color_theme("blue")
app = ctk.CTk()
app.geometry("400x240")
app.title("My App")
def on_button_click():
print("Button clicked!")
# Logic mixed directly here
label = ctk.CTkLabel(app, text="Hello!")
label.pack(pady=10)
button = ctk.CTkButton(app, text="Click Me", command=on_button_click)
button.pack(pady=10)
app.mainloop()
```
✅
© sanjeed5 · CC0-1.0 · sanjeed5/awesome-cursor-rules-mdc