2010-12-02 2 views
0

Ищите советы по удалению или отключению изменяемого размера кнопка увеличения окна под Windows. Я использую Python 2.7 для Windows.Удаление или отключение кнопки увеличения размера окна Tkinter под Windows

Фон: У меня есть изменяемое размер окна с минимальными и максимальными размерами, установленными с помощью методов minsize() и maxsize() окна. Когда пользователь нажимает кнопку максимизации, окно перемещается в верхнюю левую часть дисплея. Это очень смущает моих пользователей, поэтому я хотел бы предотвратить это поведение.

В моих исследованиях показано несколько способов отключения кнопки максимизации - но ни один из этих методов не применим к изменяемым по размеру окнам?

  1. Предотвращение изменения размера окна с помощью метода изменения размера (False, False).

  2. Удалите все элементы управления (и границы) окна с помощью метода overrideredirect (True).

  3. Использование таинственного метода переходного процесса (это вызывает исключение под Windows).

  4. Привязать событие окна и попытаться заблокировать максимизацию (обновление: Tkinter уже увеличил окно к тому времени, когда наш обработчик обнаружит событие максимизации. Возвращение «break» или использование геометрии (размер | позиция) для размера и повтора -позиция окна игнорируются)

  5. Я отправил вопрос в список рассылки API Python Win32, чтобы узнать, можем ли мы использовать вызов Windows API для отключения кнопки максимизации окна с помощью дескриптора hWnd, который, как я полагаю (?) Tkinter предоставляет.

Есть ли способ, которым я могу уловить событие максимизации (ПЕРЕД ТКИНТЕР выполняет его)?

Malcolm

ответ

3

Одна возможность состоит в том, чтобы установить окно как окно инструмента, но это также поставляется с побочными эффектами; окно больше не будет отображаться на панели задач и будет иметь тонкую строку заголовка. Он по-прежнему может быть изменен по краям.

root.attributes("-toolwindow", 1) 

Подробнее о корневых атрибутов можно найти в this guidebook.

Смежные вопросы