Форум сайта python.su
The gray Cardinal] igor.kaist
Здравствуйте. Простите, что влезаю, но тоже стало любопытно.
Попробовал:
- emacs buttontk.py
- C-c C-c
- Двойной клик на <завершение работы> - вызывается Konqueror и заходит в мою папку /home/mike/Desktop/tcltkrus
- закрываю окно Konqueror - возвращается в emacs, окно Tkinter закрылось - все в порядке.
Пробую : buttonqt.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
from PyQt4 import QtCore, QtGui
if __name__=="__main__":
app = QtGui.QApplication(sys.argv)
button = QtGui.QPushButton(u"Выход")
button.setFont( QtGui.QFont("Arial", 16, QtGui.QFont.Bold) )
QtCore.QObject.connect( button, QtCore.SIGNAL("clicked()"), app, QtCore.SLOT("quit()") )
button.show()
sys.exit(app.exec_())
Офлайн
Тогда нужно разбираться каким образов emacs запускает питоновский скрипт…
Советую так же почитать про Tkinter вот ЭТУ PDF
The gray CardinalЯ ж не заставляю… Советовать нынче уже нельзя? Ты имеешь право писат какой угодно код, в том числе и индусткий :-)
Это всё не значит, что я не имею права применять bind и event. И это не значит, что я не имею права применять sys.exit().
Отредактировано (Окт. 21, 2008 11:31:24)
Офлайн
Ещё один момент. Вот этот скрипт из-под emacs тоже корректно не работает:
#!/usr/bin/python
# -*- coding: utf-8 -*-
from Tkinter import *
root = Tk()
Button(root, text = u'Завершение работы', command = root.quit).pack()
root.protocol('WM_DELETE_WINDOW', lambda: 0) # перехват закрытия окна
root.mainloop()
Офлайн
Так попробуй command=lambda:root.quit()
Офлайн
igor.kaistКак оказалось, достаточно просто написать “destroy” вместо “quit”, т.к. код выполняется в уже запущенном интерпретаторе, который не завершается после выполнения этого кода, root.quit() завершает mainloop, но не удаляет окно с экрана, это происходит при завершении процесса Питона.
Так попробуй command=lambda:root.quit()
Офлайн
Ну вообще то всегда так делается обычно. У тебя как то все замудренно получается. Почему ты упорно отрицаешь примеры в туториалах? Уже несколько видел твоих примеров, все можно решить и проще и легче
Офлайн
igor.kaistЯ ничего не отрицаю. Но работать должно всё, а не только избранные примеры в туториалах. И туториалы бывают разные. А метод quit именно приведённым способом использует Марк Лутц в книге “Программирование на Python”, кстати.
Почему ты упорно отрицаешь примеры в туториалах?
Отредактировано (Окт. 26, 2008 11:51:36)
Офлайн
Неужели у меня одного получаются красивый и нормально работающий гуй на тк??
Офлайн
igor.kaistПод Windows?
Неужели у меня одного получаются красивый и нормально работающий гуй на тк??
Офлайн