2009-12-24 7 views
4

나는 glade GUI를 가지고 있으며 사용자 상호 작용을 위해 pygtk로 만든 돔 gtk.MessageDialog 위젯을 사용하고 있습니다. 내 문제는 내가 화면에 대화 메시지를 던질 때마다 그 곳곳에 표시된다는 것입니다. 하나는 오른쪽 상단 모서리에, 다른 하나는 왼쪽 하단, 왼쪽 상단, 왼쪽 중간에 나타날 수 있습니다.pygtk : 화면 중앙에 메시지 대화 상자를 표시하는 방법은 무엇입니까?

이러한 것들이 화면 중앙이나 부모 윈도우가있는 위치?

답변

5

. 솔루션을 찾았습니다.

같은 문제를 방황하는 사람들에게는 gtk.MessageDialog 구문에 부모 값을 지정하는 문제가 있습니다. 당신이 당신의 클래스, 숲 사이의 빈 터 GUI를 사용하는 경우, 귀하의 빈터 XML은 'GUI'라는 이름의 변수에로드, 그 결과는 다음과 같습니다

#!/usr/bin/env/python 
par = self.gui.get_widget('your_parent_window') 

msg = gtk.MessageDialog(type=gtk.MESSAGE_INFO, buttons = gtk.BUTTONS_OK, parent=par) 
if msg.run(): 
    msg.destroy() 
    return None 
2

체크 아웃 내가 MessageDialog하지만이 시도 할 수있는 기회가 없었어요 PyGTK 2.0 Reference Manual

의 참고 자료는 set_position 방법을 가지고 창에서 파생 된 것으로 보인다.

이 방법은 다음 중 하나를 받아들 신경 쓰지

# No influence is made on placement. 
gtk.WIN_POS_NONE 

# Windows should be placed in the center of the screen. 
gtk.WIN_POS_CENTER 

# Windows should be placed at the current mouse position. 
gtk.WIN_POS_MOUSE 

# Keep window centered as it changes size, etc. 
gtk.WIN_POS_CENTER_ALWAYS 

# Center the window on its transient parent 
# (see the gtk.Window.set_transient_for()) method. 
gtk.WIN_POS_CENTER_ON_PARENT 
+0

그래 ... 난 당신이 할 수 있다고 생각 위치 설정을 사용하여,하지만 그들은 gtk.WIN_POS_CENTER_ON_PARENT 기본적으로 알게되었습니다. 그래서 정말로 필요한 것은 부모 값이며 항상 부모 중심에 나타납니다. 도움말 주셔서 감사합니다. –

관련 문제