Определение размера рабочей области (размер экрана меньше панели задач) с помощью GTK

StackOverflow https://stackoverflow.com/questions/502282

  •  20-08-2019
  •  | 
  •  

Вопрос

Как создать главное окно, которое заполняет весь рабочий стол не закрывая (или будучи закрытым) панель задач и без того, чтобы быть максимизированным?Я могу найти весь размер экрана с помощью и соответствующим образом настроить главное окно с помощью этого:

window = gtk.Window()
screen = window.get_screen()
window.resize(screen.get_width(), screen.get_height())

но нижняя часть окна закрыта панелью задач.

Это было полезно?

Решение

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

без того, чтобы быть максимизированным

Таким образом, у нас остается несколько хитростей, потому что в основном максимизация и изменение размера - это две разные вещи, чтобы вы могли вспомнить, где это было, когда оно не было максимизировано.

Поэтому, прежде чем я покажу вам этот отвратительный взлом, я настоятельно призываю вас рассмотреть возможность использования надлежащей максимизации и просто быть довольными этим.

Итак, вот так:

import gtk

# Even I am ashamed by this
# Set up a one-time signal handler to detect size changes
def _on_size_req(win, req):
    x, y, w, h = win.get_allocation()
    print x, y, w, h   # just to prove to you its working
    win.disconnect(win.connection_id)
    win.unmaximize()
    win.window.move_resize(x, y, w, h)

# Create the window, connect the signal, then maximise it
w = gtk.Window()
w.show_all()
w.connection_id = w.connect('size-request', _on_size_req)
# Maximizing will fire the signal handler just once,
# unmaximize, and then resize to the previously set size for maximization.
w.maximize()

# run this monstrosity
gtk.main()

Другие советы

Вы имеете в виду изготовление окна полноэкранный режим?

Gtk имеет функции для перевода окон в полноэкранный режим и обратно, см. gtk_window_fullscreen() и gtk_window_unfullscreen().

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top