العثور على حجم مساحة العمل (حجم الشاشة أقل من شريط المهام) باستخدام 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