2012-05-06 16 views
9

Tôi đang cố gắng làm cho thiết bị đầu cuối Guake hoạt động chính xác trong Unity. Cửa sổ của nó có chiều rộng bằng với chiều rộng màn hình. Nhưng vì đường viền bên phải của cửa sổ thanh bên trái Unity trở nên vô hình. Vì vậy, tôi muốn thiết lập chiều rộng thích hợp cho cửa sổ. Nó phải nhỏ hơn kích thước cửa sổ thực tế. Và mã phải hoạt động chính xác có hoặc không có Unity.Làm cách nào để có được kích thước màn hình, ngoại trừ bảng điều khiển bên Unity trong GDK

Đây là cách Guake xác định vị trí và kích thước của cửa sổ của nó:

def get_final_window_rect(self): 

    """Gets the final size of the main window of guake. The height 
    is the window_height property, width is window_width and the 
    horizontal alignment is given by window_alignment. 
    """ 
    screen = self.window.get_screen() 
    height = self.client.get_int(KEY('/general/window_height')) 
    width = 100 
    halignment = self.client.get_int(KEY('/general/window_halignment')) 

    # get the rectangle just from the first/default monitor in the 
    # future we might create a field to select which monitor you 
    # wanna use 
    window_rect = screen.get_monitor_geometry(0) 
    total_width = window_rect.width 
    window_rect.height = window_rect.height * height/100 
    window_rect.width = window_rect.width * width/100 

    if width < total_width: 
     if halignment == ALIGN_CENTER: 
      window_rect.x = (total_width - window_rect.width)/2 
     elif halignment == ALIGN_LEFT: 
      window_rect.x = 0 
     elif halignment == ALIGN_RIGHT: 
      window_rect.x = total_width - window_rect.width 
    window_rect.y = 0 
    window_rect.width = 250 
    return window_rect 

Trả lời

1

Vì vậy, bạn muốn trừ chiều rộng thống nhất phóng từ total_width của bạn. Kích thước này có thể được xác định bằng gconf để có được giá trị của các biểu tượng launcher:

self.client.get_int('/apps/compiz-1/plugins/unityshell/screen0/options/icon_size') 

tất nhiên bạn cũng muốn biết nếu phiên chạy hiện nay thực sự là thống nhất:

os.environ.get('DESKTOP_SESSION') == 'ubuntu' 

có vẻ là một tốt dung dịch. (http://stackoverflow.com/questions/2035657/what-is-my-current-desktop-environment)

+0

Chiều rộng của trình khởi chạy lớn hơn giá trị 'biểu tượng_size'. Bây giờ tôi có phóng width = 50 và icon_size = 32. –

Các vấn đề liên quan