Как вставить терминал или cmd в известность Tkinter. (Использование Python 2.7) [дубликат]

Это одно из мест, с помощью которого привязка данных, используемая во многих новых фреймворках JavaScript, будет очень полезна для вас ...

Итак, если вы используете Angular, React или любые другие фреймворки, которые делают два способа связывания данных, эта проблема просто исправлена ​​для вас, поэтому простым языком ваш результат undefined на первом этапе, поэтому вы получили result = undefined до получения данных, а затем, как только вы получите результат , он будет обновляться и присваиваться новому значению, которое отвечает на ваш вызов Ajax ...

Но как вы можете сделать это в чистом javascript или jQuery, например, как вы задали этот вопрос?

Вы можете использовать обратный вызов, обещание и недавно наблюдаемое, чтобы обрабатывать его для вас, например, в обещаниях мы имеем некоторые функции, такие как success () или then (), которые будут выполняться, когда ваши данные будут готовы для вас, с функцией обратного вызова или подписки на наблюдаемые.

Например, в вашем случае, в котором вы используете jQuery, вы можете сделать что-то вроде этого:

$(document).ready(function(){
    function foo() {
        $.ajax({url: "api/data", success: function(data){
            fooDone(data); //after we have data, we pass it to fooDone
        }});
    };

    function fooDone(data) {
        console.log(data); //fooDone has the data and console.log it
    };

    foo(); //call happens here
});

Для получения дополнительной информации n изучение обещаний и наблюдаемых, которые являются новыми способами для создания асинхронных материалов.

14
задан nbro 6 February 2015 в 18:47
поделиться

3 ответа

Я рад сказать, что на самом деле это возможно сделать, и вы можете сделать это всего несколькими строками кода ( Я не знаю, так ли легко с другими инструментами ):

from Tkinter import *
import os

root = Tk()
termf = Frame(root, height=400, width=500)

termf.pack(fill=BOTH, expand=YES)
wid = termf.winfo_id()
os.system('xterm -into %d -geometry 40x20 -sb &' % wid)

root.mainloop()

Ранее проблема заключалась в использовании неправильной функции для wid.

19
ответ дан nbro 25 August 2018 в 08:08
поделиться

Алессандро уже сообщил за пять часов до того, что он считает подходящей моделью. Для тех, кто сталкивается с этим предметом во время будущих поисков, я запишу еще несколько фоновых фактов, которые я знаю:

Удалось, что Брайан был здесь, чтобы обратить внимание на различия между window_id () и winfo_id ( ), и чтобы противостоять ошибкам, сделанным другими в письменной форме о различных инструментариях.

Мне интересно, как stackoverflow сравнивается с более специализированными каналами. В этом случае быстро и точно ответил на вопрос список рассылки Tkinter http://mail.python.org/pipermail/tkinter-discuss/2011-September/002968.html .

Tkinter будет улучшением, по крайней мере, для некоторых программ лунной ракеты.

0
ответ дан Cameron Laird 25 August 2018 в 08:08
поделиться

Не существует текущего, стабильного способа сделать это с помощью Tkinter. Теперь у вас есть два варианта:

  • Отправляйтесь от Tkinter до PyGTK, PyQt или PySide или WxPython или любой из пяти других библиотек GUI
  • сложный и раздражающий)

Tkinter действительно не предназначен для каких-либо крупных, в основном игрушечных программ и небольших приложений, таких как генераторы makefile.

-7
ответ дан Dhaivat Pandya 25 August 2018 в 08:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: