Python论坛  - 讨论区

标题:[python-chinese] wxPython写的界面程序,在调用可执行文件时,如何输出信息?

2007年06月21日 星期四 08:51

chunyan chen chchyan在gmail.com
星期四 六月 21 08:51:38 HKT 2007

Linux주
cppÓïÑÔдµÄÒ»¸ö³ÌÐò£¬±àÒë³ÉÁË¿ÉÖ´ÐÐÎļþaa
£­£­£­£­£­aa.cpp----
#include 
int main()
{
    for(int i=0;i<10;i++)
       {
        for(long int j=0;j<399999000;j++)
            {   //Õâ¸öµØ·½Ö÷ÒªÏë¶àËãÒ»»á¶ù£¬²»ÈôòÓ¡µÄ¶«Î÷ÄÇô¿ì´òÓ¡³öÀ´
                 int k=10;
                 k*=(k+j);
            }
          std::cout << "Hello, C++ World!\n";
       }
}

ÏÖÔÚÏë×öµÄÊÇ£¬ÓÃwxPythonдµÄ½çÃæ³ÌÐò£¬ÓÐÒ»¸ö°´Å¥ºÍÒ»¸öÎı¾¿ò¡£
ÏëÔÚµã»÷°´Å¥µÄʱºòÔËÐпÉÖ´ÐÐÎļþaa,È»ºó°Ñaa³ÌÐòµÄÊä³ö·Åµ½Îı¾¿òÖУ¨ÓÉÓÚÕæʵµÄC£«£«³ÌÐòºÜ´ó£¬Êä³öµÄ¶«Î÷Ïëʱʱ¹Û²â£©ËùÒÔ¾ÍÏ룬ÿ´ÎC£«£«³ÌÐòµÄÊä³öÖ±½ÓÊä³öµ½Îı¾¿ò¡£

ÏÖÔÚÎÒÓÃsubprocessÄ£¿é£¬ÓÃ
self.textCtrl1.SetValue(subprocess.Popen(dd,bufsize=7,stdout=subprocess.PIPE
).communicate()[0])
ÕâÑù×Ó×öµÄ½á¹ûÊÇ£º³ÌÐòÔËÐеÄʱºò£¬°ÑÊä³ö×÷³ÉÁËÒ»¸öÎļþ£¬×îºó³ÌÐòÔËÐÐÍêºó£¬°ÑÊä³öÒ»ÏÂ×ӷŵ½ÁËÎı¾¿òÖС£²»ÄÜʵʱ¼à²âÊä³ö¡£
¸ßÊÖ¸ø¸öÖ¸µã£¬ÔõôÄÜ°ÑC£«£«³ÌÐòµÄÊä³öʵʱµÄÊä³öµ½Îı¾¿òÖУ¿×îºÃÊDz»ÐÞ¸ÄC£«£«³ÌÐò¡£

²»Êä³öµ½Îı¾¿òÒ²¿ÉÒÔ£¬Ö±½Ó´ò¿ª¸öshell£¬°Ñ½á¹ûʵʱµÄÊä³öµ½shellÀïÃæÒ²¿ÉÒÔ¡£ÔÚwindowsÏ£¬¿ÉÒԺܷ½±ãµÄ´ò¿ªÒ»¸ödos´°¿Ú£¬°Ñ½á¹ûÊä³öµ½dos´°¿ÚÖУ¬¿ÉÊÇÔÚlinuxÏ£¬ÎÒÔõô¾ÍÎÞ·¨´ò¿ªÒ»¸öshellÄØ£¿°ÑPopen£¨£©²ÎÊýÖеÄshell=TrueÒ²²»¿ÉÒÔ¡£

£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­
ÎÒ¾ÍÊÇÏëLinuxÏ£¬ÔÚwxPYthonдµÄ½çÃæÉϵã»÷Ò»¸ö°´Å¥£¬ÔËÐÐÒ»¸ö¿ÉÖ´ÐгÌÐò£¬¿ÉÖ´ÐгÌÐòµÄÊä³ö£¬ÄÜʵʱµÄÊä³ö³öÀ´¡£Êä³ö×îºÃÄÜʵʱµÄ·ÅÔÚÒ»¸öÎı¾¿òÖУ¬Èç¹ûʵÔÚ²»ÐУ¬Ö±½Ó´ò¿ªÒ»¸öshellÊä³öÒ²¿ÉÒÔ¡£
Ôõô°ìÄØ£¿ÕûÁ˺öàÌìÁË¡£
--------------------------------------------------------------------------
ÔÚˮľÉÏÎÊÁËһϣ¬ÓÐÈ˸æËßÎÒÓÃos.popen,os.popen1,os.popen2,os.popen3µÈ£¬
¿ÉÊÇÕâЩÎÒÒ²»¹ÊÇ´ò²»¿ªshell£¬ÊDz»ÊÇÎÒµÄlinuxϵͳÓÐÎÊÌ⣿ÎÒµÄϵͳÊÇUbuntu7.04
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20070621/08185349/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年06月21日 星期四 09:05

头太晕 torrycn在gmail.com
星期四 六月 21 09:05:04 HKT 2007

ÔÚ07-6-21£¬chunyan chen <chchyan在gmail.com> дµÀ£º
>
> Linux주
> cppÓïÑÔдµÄÒ»¸ö³ÌÐò£¬±àÒë³ÉÁË¿ÉÖ´ÐÐÎļþaa
> £­£­£­£­£­aa.cpp----
> #include 
> int main()
> {
>     for(int i=0;i<10;i++)
>        {
>         for(long int j=0;j<399999000;j++)
>             {   //Õâ¸öµØ·½Ö÷ÒªÏë¶àËãÒ»»á¶ù£¬²»ÈôòÓ¡µÄ¶«Î÷ÄÇô¿ì´òÓ¡³öÀ´
>                  int k=10;
>                  k*=(k+j);
>             }
>           std::cout << "Hello, C++ World!\n";
>        }
> }
>
> ÏÖÔÚÏë×öµÄÊÇ£¬ÓÃwxPythonдµÄ½çÃæ³ÌÐò£¬ÓÐÒ»¸ö°´Å¥ºÍÒ»¸öÎı¾¿ò¡£
> ÏëÔÚµã»÷°´Å¥µÄʱºòÔËÐпÉÖ´ÐÐÎļþaa,È»ºó°Ñaa³ÌÐòµÄÊä³ö·Åµ½Îı¾¿òÖУ¨ÓÉÓÚÕæʵµÄC£«£«³ÌÐòºÜ´ó£¬Êä³öµÄ¶«Î÷Ïëʱʱ¹Û²â£©ËùÒÔ¾ÍÏ룬ÿ´ÎC£«£«³ÌÐòµÄÊä³öÖ±½ÓÊä³öµ½Îı¾¿ò¡£
>
>
> ÏÖÔÚÎÒÓÃsubprocessÄ£¿é£¬ÓÃ
> self.textCtrl1.SetValue(subprocess.Popen(dd,bufsize=7,stdout=
> subprocess.PIPE).communicate()[0])
> ÕâÑù×Ó×öµÄ½á¹ûÊÇ£º³ÌÐòÔËÐеÄʱºò£¬°ÑÊä³ö×÷³ÉÁËÒ»¸öÎļþ£¬×îºó³ÌÐòÔËÐÐÍêºó£¬°ÑÊä³öÒ»ÏÂ×ӷŵ½ÁËÎı¾¿òÖС£²»ÄÜʵʱ¼à²âÊä³ö¡£
> ¸ßÊÖ¸ø¸öÖ¸µã£¬ÔõôÄÜ°ÑC£«£«³ÌÐòµÄÊä³öʵʱµÄÊä³öµ½Îı¾¿òÖУ¿×îºÃÊDz»ÐÞ¸ÄC£«£«³ÌÐò¡£
>
>
> ²»Êä³öµ½Îı¾¿òÒ²¿ÉÒÔ£¬Ö±½Ó´ò¿ª¸öshell£¬°Ñ½á¹ûʵʱµÄÊä³öµ½shellÀïÃæÒ²¿ÉÒÔ¡£ÔÚwindowsÏ£¬¿ÉÒԺܷ½±ãµÄ´ò¿ªÒ»¸ödos´°¿Ú£¬°Ñ½á¹ûÊä³öµ½dos´°¿ÚÖУ¬¿ÉÊÇÔÚlinuxÏ£¬ÎÒÔõô¾ÍÎÞ·¨´ò¿ªÒ»¸öshellÄØ£¿°ÑPopen£¨£©²ÎÊýÖеÄshell=TrueÒ²²»¿ÉÒÔ¡£
>
> £­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­
> ÎÒ¾ÍÊÇÏëLinuxÏ£¬ÔÚwxPYthonдµÄ½çÃæÉϵã»÷Ò»¸ö°´Å¥£¬ÔËÐÐÒ»¸ö¿ÉÖ´ÐгÌÐò£¬¿ÉÖ´ÐгÌÐòµÄÊä³ö£¬ÄÜʵʱµÄÊä³ö³öÀ´¡£Êä³ö×îºÃÄÜʵʱµÄ·ÅÔÚÒ»¸öÎı¾¿òÖУ¬Èç¹ûʵÔÚ²»ÐУ¬Ö±½Ó´ò¿ªÒ»¸öshellÊä³öÒ²¿ÉÒÔ¡£
>
> Ôõô°ìÄØ£¿ÕûÁ˺öàÌìÁË¡£
> --------------------------------------------------------------------------
> ÔÚˮľÉÏÎÊÁËһϣ¬ÓÐÈ˸æËßÎÒÓÃos.popen,os.popen1,os.popen2,os.popen3µÈ£¬
> ¿ÉÊÇÕâЩÎÒÒ²»¹ÊÇ´ò²»¿ªshell£¬ÊDz»ÊÇÎÒµÄlinuxϵͳÓÐÎÊÌ⣿ÎÒµÄϵͳÊÇUbuntu7.04
>

²Î¿¼Ò»ÏÂulipadµÄ´úÂë. ÓÐÕâ¸öµÄÓ÷¨.
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20070621/41bb57fd/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年06月21日 星期四 10:13

jondy jondynet在gmail.com
星期四 六月 21 10:13:02 HKT 2007

ÎÒÓõÄÒ²ÊÇub7.04
os.system()¿ÉÒÔ´ò¿ª¸öshellÖ´ÐÐ
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20070621/805eab79/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年06月21日 星期四 11:19

chunyan chen chchyan在gmail.com
星期四 六月 21 11:19:11 HKT 2007

Äܲ»ÄÜ°ÑÄãµÄ²âÊÔ´úÂë¸øÎÒ·¢¹ýÀ´Ò»Ï£¿ÎÒµÄÔõô¾Í²»ÐÐÄØ£¿£¿ÎÒÔÙÊÔÊÔ£¬ÊµÔÚ²»ÐУ¬ÎÒÏ뻻ϵͳÁË¡£

ÔÚ07-6-21£¬jondy <jondynet在gmail.com> дµÀ£º
>
>  ÎÒÓõÄÒ²ÊÇub7.04
> os.system()¿ÉÒÔ´ò¿ª¸öshellÖ´ÐÐ
>
>
>
>
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20070621/06dd626c/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年06月21日 星期四 11:22

chunyan chen chchyan在gmail.com
星期四 六月 21 11:22:13 HKT 2007

ÒýÓãº
-----------------------------------------------
²Î¿¼Ò»ÏÂulipadµÄ´úÂë. ÓÐÕâ¸öµÄÓ÷¨.
------------------------------------------------
ÀÏÐÖ£¬ÎÒûÓÐÓùýulipad£¬Âé·³ÔÙÎÊÄúһϣ¬ÄǸöµØ·½µÄÓÐÕâ¸öÓ÷¨£¬ÔÚÄǸöÎļþÖУ¿Ã»ÓÐÆäËûµÄÐÅÏ¢£¬ÎÒ²»ÖªµÀÔõôÕÒµ½Õâ¸öÓ÷¨µÄµØ·½¡£
°ÑulipadµÄÔ´´úÂëÏÂÔØÏÂÀ´ÁË£¬¿ÉÊDz»ÖªµÀÔÚÄÇÀïÕÒÕâ¸ö¶«Î÷¡£»òÕßÄã¸øÒ»¸ö¹Ø¼ü×Ö£¬ÎÒÔÚÎļþÖÐÔÙÕÒÕÒ¡£
¶àлÁË¡£

ÔÚ07-6-21£¬Í·Ì«ÔÎ <torrycn在gmail.com> дµÀ£º
>
>
>
> ÔÚ07-6-21£¬chunyan chen <chchyan在gmail.com> дµÀ£º
> >
> > Linux주
> > cppÓïÑÔдµÄÒ»¸ö³ÌÐò£¬±àÒë³ÉÁË¿ÉÖ´ÐÐÎļþaa
> > £­£­£­£­£­aa.cpp----
> > #include 
> > int main()
> > {
> >     for(int i=0;i<10;i++)
> >        {
> >         for(long int j=0;j<399999000;j++)
> >             {   //Õâ¸öµØ·½Ö÷ÒªÏë¶àËãÒ»»á¶ù£¬²»ÈôòÓ¡µÄ¶«Î÷ÄÇô¿ì´òÓ¡³öÀ´
> >                  int k=10;
> >                  k*=(k+j);
> >             }
> >           std::cout << "Hello, C++ World!\n";
> >        }
> > }
> >
> > ÏÖÔÚÏë×öµÄÊÇ£¬ÓÃwxPythonдµÄ½çÃæ³ÌÐò£¬ÓÐÒ»¸ö°´Å¥ºÍÒ»¸öÎı¾¿ò¡£
> > ÏëÔÚµã»÷°´Å¥µÄʱºòÔËÐпÉÖ´ÐÐÎļþaa,È»ºó°Ñaa³ÌÐòµÄÊä³ö·Åµ½Îı¾¿òÖУ¨ÓÉÓÚÕæʵµÄC£«£«³ÌÐòºÜ´ó£¬Êä³öµÄ¶«Î÷Ïëʱʱ¹Û²â£©ËùÒÔ¾ÍÏ룬ÿ´ÎC£«£«³ÌÐòµÄÊä³öÖ±½ÓÊä³öµ½Îı¾¿ò¡£
> >
> >
> > ÏÖÔÚÎÒÓÃsubprocessÄ£¿é£¬ÓÃ
> > self.textCtrl1.SetValue(subprocess.Popen(dd,bufsize=7,stdout=
> > subprocess.PIPE).communicate()[0])
> > ÕâÑù×Ó×öµÄ½á¹ûÊÇ£º³ÌÐòÔËÐеÄʱºò£¬°ÑÊä³ö×÷³ÉÁËÒ»¸öÎļþ£¬×îºó³ÌÐòÔËÐÐÍêºó£¬°ÑÊä³öÒ»ÏÂ×ӷŵ½ÁËÎı¾¿òÖС£²»ÄÜʵʱ¼à²âÊä³ö¡£
> > ¸ßÊÖ¸ø¸öÖ¸µã£¬ÔõôÄÜ°ÑC£«£«³ÌÐòµÄÊä³öʵʱµÄÊä³öµ½Îı¾¿òÖУ¿×îºÃÊDz»ÐÞ¸ÄC£«£«³ÌÐò¡£
> >
> >
> > ²»Êä³öµ½Îı¾¿òÒ²¿ÉÒÔ£¬Ö±½Ó´ò¿ª¸öshell£¬°Ñ½á¹ûʵʱµÄÊä³öµ½shellÀïÃæÒ²¿ÉÒÔ¡£ÔÚwindowsÏ£¬¿ÉÒԺܷ½±ãµÄ´ò¿ªÒ»¸ödos´°¿Ú£¬°Ñ½á¹ûÊä³öµ½dos´°¿ÚÖУ¬¿ÉÊÇÔÚlinuxÏ£¬ÎÒÔõô¾ÍÎÞ·¨´ò¿ªÒ»¸öshellÄØ£¿°ÑPopen£¨£©²ÎÊýÖеÄshell=TrueÒ²²»¿ÉÒÔ¡£
> >
> > £­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­
> > ÎÒ¾ÍÊÇÏëLinuxÏ£¬ÔÚwxPYthonдµÄ½çÃæÉϵã»÷Ò»¸ö°´Å¥£¬ÔËÐÐÒ»¸ö¿ÉÖ´ÐгÌÐò£¬¿ÉÖ´ÐгÌÐòµÄÊä³ö£¬ÄÜʵʱµÄÊä³ö³öÀ´¡£Êä³ö×îºÃÄÜʵʱµÄ·ÅÔÚÒ»¸öÎı¾¿òÖУ¬Èç¹ûʵÔÚ²»ÐУ¬Ö±½Ó´ò¿ªÒ»¸öshellÊä³öÒ²¿ÉÒÔ¡£
> >
> > Ôõô°ìÄØ£¿ÕûÁ˺öàÌìÁË¡£
> >
> > --------------------------------------------------------------------------
> > ÔÚˮľÉÏÎÊÁËһϣ¬ÓÐÈ˸æËßÎÒÓÃos.popen,os.popen1,os.popen2,os.popen3µÈ£¬
> > ¿ÉÊÇÕâЩÎÒÒ²»¹ÊÇ´ò²»¿ªshell£¬ÊDz»ÊÇÎÒµÄlinuxϵͳÓÐÎÊÌ⣿ÎÒµÄϵͳÊÇUbuntu7.04
> >
>
> ²Î¿¼Ò»ÏÂulipadµÄ´úÂë. ÓÐÕâ¸öµÄÓ÷¨.
>
>
>
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20070621/1e153203/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年06月21日 星期四 11:51

limodou limodou在gmail.com
星期四 六月 21 11:51:30 HKT 2007

On 6/21/07, chunyan chen <chchyan在gmail.com> wrote:
> 引用:
> -----------------------------------------------
> 参考一下ulipad的代码. 有这个的用法.
> ------------------------------------------------
> 老兄,我没有用过ulipad,麻烦再问您一下,那个地方的有这个用法,在那个文件中?没有其他的信息,我不知道怎么找到这个用法的地方。
> 把ulipad的源代码下载下来了,可是不知道在那里找这个东西。或者你给一个关键字,我在文件中再找找。
> 多谢了。
>
建议参考一下wxPython中的wxExecute方法,在demo中有例子的。

-- 
I like python!
UliPad <>: http://wiki.woodpecker.org.cn/moin/UliPad
My Blog: http://www.donews.net/limodou

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年06月21日 星期四 13:01

jondy jondynet在gmail.com
星期四 六月 21 13:01:32 HKT 2007

jondy在jondy-laptop:~$ python
Python 2.5.1 (r251:54863, May 2 2007, 16:56:35) 
[GCC 4.1.2 (Ubuntu 4.1.2-0ubuntu4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> from Tkinter import *
>>> root = Tk()
>>> Button(root,text='run', command=lambda:os.system('top')).pack()
>>> 
²»ÓÃroot.mainloop()¾ÍÒѾ­ÓнçÃæÁË£¬µãRUN°É
  ----- Original Message ----- 
  From: chunyan chen 
  To: python-chinese在lists.python.cn 
  Sent: Thursday, June 21, 2007 11:19 AM
  Subject: Re: [python-chinese]wxPythonдµÄ½çÃæ³ÌÐò£¬ÔÚµ÷ÓÿÉÖ´ÐÐÎļþʱ£¬ÈçºÎÊä³öÐÅÏ¢£¿


  Äܲ»ÄÜ°ÑÄãµÄ²âÊÔ´úÂë¸øÎÒ·¢¹ýÀ´Ò»Ï£¿ÎÒµÄÔõô¾Í²»ÐÐÄØ£¿£¿ÎÒÔÙÊÔÊÔ£¬ÊµÔÚ²»ÐУ¬ÎÒÏ뻻ϵͳÁË¡£


  ÔÚ07-6-21£¬jondy <jondynet在gmail.com> дµÀ£º
    ÎÒÓõÄÒ²ÊÇub7.04
    os.system()¿ÉÒÔ´ò¿ª¸öshellÖ´ÐÐ


    _______________________________________________
    python-chinese
    Post: send python-chinese在lists.python.cn 
    Subscribe: send subscribe to python-chinese-request在lists.python.cn
    Unsubscribe: send unsubscribe to   python-chinese-request在lists.python.cn
    Detail Info: http://python.cn/mailman/listinfo/python-chinese





------------------------------------------------------------------------------


  _______________________________________________
  python-chinese
  Post: send python-chinese在lists.python.cn
  Subscribe: send subscribe to python-chinese-request在lists.python.cn
  Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
  Detail Info: http://python.cn/mailman/listinfo/python-chinese
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20070621/c063b0a0/attachment-0001.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年06月21日 星期四 23:41

Can Xue xuecan在gmail.com
星期四 六月 21 23:41:14 HKT 2007

和操作系统没什么关系吧,应该是你还没有找到感觉 :-D

重定向一个 stdout 和 stderr 到你的 wx.TextCtrl 的子类上,
任意对象只有有个 .write(string) 方法就可以当作 stdout 和 stdin 来用。
在 os.popen*() 里面找一个合适的用就可以了。

我现在都主要在 Ubuntu 下,只在软件发布前才会在 Windows 下测试一下。
wx 虽然跨平台,但是有一些很小的细节还是不一样的。

在 07-6-21,chunyan chen<chchyan在gmail.com> 写道:
> Linux下:
> cpp语言写的一个程序,编译成了可执行文件aa
> -----aa.cpp----
> #include 
> int main()
> {
>     for(int i=0;i<10;i++)
>        {
>         for(long int j=0;j<399999000;j++)
>             {   //这个地方主要想多算一会儿,不让打印的东西那么快打印出来
>                  int k=10;
>                  k*=(k+j);
>             }
>           std::cout << "Hello, C++ World!\n";
>        }
> }
>
> 现在想做的是,用wxPython写的界面程序,有一个按钮和一个文本框。
> 想在点击按钮的时候运行可执行文件aa,然后把aa程序的输出放到文本框中(由于真实的C++程序很大,输出的东西想时时观测)所以就想,每次C++程序的输出直接输出到文本框。
>
> 现在我用subprocess模块,用
> self.textCtrl1.SetValue(subprocess.Popen(dd,bufsize=7,stdout=subprocess.PIPE).communicate()[0])
> 这样子做的结果是:程序运行的时候,把输出作成了一个文件,最后程序运行完后,把输出一下子放到了文本框中。不能实时监测输出。
> 高手给个指点,怎么能把C++程序的输出实时的输出到文本框中?最好是不修改C++程序。
>
> 不输出到文本框也可以,直接打开个shell,把结果实时的输出到shell里面也可以。在windows下,可以很方便的打开一个dos窗口,把结果输出到dos窗口中,可是在linux下,我怎么就无法打开一个shell呢?把Popen()参数中的shell=True也不可以。
>
> -----------------------
> 我就是想Linux下,在wxPYthon写的界面上点击一个按钮,运行一个可执行程序,可执行程序的输出,能实时的输出出来。输出最好能实时的放在一个文本框中,如果实在不行,直接打开一个shell输出也可以。
> 怎么办呢?整了好多天了。
> --------------------------------------------------------------------------
> 在水木上问了一下,有人告诉我用os.popen,os.popen1,os.popen2,os.popen3等,可是这些我也还是打不开shell,是不是我的linux系统有问题?我的系统是Ubuntu7.04
>
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to
> python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to
> python-chinese-request在lists.python.cn
> Detail Info:
> http://python.cn/mailman/listinfo/python-chinese
>

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年06月21日 星期四 23:42

Can Xue xuecan在gmail.com
星期四 六月 21 23:42:32 HKT 2007

说错了,有 .write(string) 可以当  stdout 设 stderr 用
要当 stdin 用需要有个 .readline() 方法。

在 07-6-21,Can Xue<xuecan在gmail.com> 写道:
> 和操作系统没什么关系吧,应该是你还没有找到感觉 :-D
>
> 重定向一个 stdout 和 stderr 到你的 wx.TextCtrl 的子类上,
> 任意对象只有有个 .write(string) 方法就可以当作 stdout 和 stdin 来用。
> 在 os.popen*() 里面找一个合适的用就可以了。
>
> 我现在都主要在 Ubuntu 下,只在软件发布前才会在 Windows 下测试一下。
> wx 虽然跨平台,但是有一些很小的细节还是不一样的。
>
> 在 07-6-21,chunyan chen<chchyan在gmail.com> 写道:
> > Linux下:
> > cpp语言写的一个程序,编译成了可执行文件aa
> > -----aa.cpp----
> > #include 
> > int main()
> > {
> >     for(int i=0;i<10;i++)
> >        {
> >         for(long int j=0;j<399999000;j++)
> >             {   //这个地方主要想多算一会儿,不让打印的东西那么快打印出来
> >                  int k=10;
> >                  k*=(k+j);
> >             }
> >           std::cout << "Hello, C++ World!\n";
> >        }
> > }
> >
> > 现在想做的是,用wxPython写的界面程序,有一个按钮和一个文本框。
> > 想在点击按钮的时候运行可执行文件aa,然后把aa程序的输出放到文本框中(由于真实的C++程序很大,输出的东西想时时观测)所以就想,每次C++程序的输出直接输出到文本框。
> >
> > 现在我用subprocess模块,用
> > self.textCtrl1.SetValue(subprocess.Popen(dd,bufsize=7,stdout=subprocess.PIPE).communicate()[0])
> > 这样子做的结果是:程序运行的时候,把输出作成了一个文件,最后程序运行完后,把输出一下子放到了文本框中。不能实时监测输出。
> > 高手给个指点,怎么能把C++程序的输出实时的输出到文本框中?最好是不修改C++程序。
> >
> > 不输出到文本框也可以,直接打开个shell,把结果实时的输出到shell里面也可以。在windows下,可以很方便的打开一个dos窗口,把结果输出到dos窗口中,可是在linux下,我怎么就无法打开一个shell呢?把Popen()参数中的shell=True也不可以。
> >
> > -----------------------
> > 我就是想Linux下,在wxPYthon写的界面上点击一个按钮,运行一个可执行程序,可执行程序的输出,能实时的输出出来。输出最好能实时的放在一个文本框中,如果实在不行,直接打开一个shell输出也可以。
> > 怎么办呢?整了好多天了。
> > --------------------------------------------------------------------------
> > 在水木上问了一下,有人告诉我用os.popen,os.popen1,os.popen2,os.popen3等,可是这些我也还是打不开shell,是不是我的linux系统有问题?我的系统是Ubuntu7.04
> >
> > _______________________________________________
> > python-chinese
> > Post: send python-chinese在lists.python.cn
> > Subscribe: send subscribe to
> > python-chinese-request在lists.python.cn
> > Unsubscribe: send unsubscribe to
> > python-chinese-request在lists.python.cn
> > Detail Info:
> > http://python.cn/mailman/listinfo/python-chinese
> >
>

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号