<div dir="ltr">thanks both of you , David & Glenn.  you are so kind man.   i have use Qthread , Signal and slot to solve it.  <div>thanks to your help on my beginning  of Python learning.</div></div><div class="gmail_extra">
<br><br><div class="gmail_quote">2014-06-26 4:17 GMT+07:00 Glenn Ramsey <span dir="ltr"><<a href="mailto:gr@componic.co.nz" target="_blank">gr@componic.co.nz</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi,<br>
<br>
It looks like your main thread waits because you are calling join() on the worker thread. I suggest you look up the docs for thread.join to see what that does.<br>
<br>
Glenn<div class=""><br>
<br>
On 25/06/14 04:51, 不坏阿峰 wrote:<br>
</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">
any person can help?<br>
<br>
<br>
2014-06-23 20:05 GMT+07:00 不坏阿峰 <<a href="mailto:onlydebian@gmail.com" target="_blank">onlydebian@gmail.com</a><br></div>
<mailto:<a href="mailto:onlydebian@gmail.com" target="_blank">onlydebian@gmail.com</a>>><u></u>:<div class=""><br>
<br>
    i want to make a tools to diagnosis network. but my Main UI will stuck when<br>
    ping is running before finish.  All i want is that when the sub thread is<br>
    running, Main UI can use and go to other tab and can do other function.<br>
<br>
    pls help me . many thanks<br>
<br>
    ###########<br>
    from mychart_ui import Ui_Form<br>
    import verbose_ping01<br>
    import threading<br>
<br>
    class MyThread(threading.Thread):<br>
         def __init__(self, func, args, name=''):<br>
             threading.Thread.__init__(<u></u>self)<br></div>
    <a href="http://self.name" target="_blank">self.name</a> <<a href="http://self.name" target="_blank">http://self.name</a>> = name<div><div class="h5"><br>
             self.func = func<br>
             self.args = args<br>
<br>
         def run(self):<br>
             self.res = apply(self.func, self.args)<br>
<br>
         def getRes(self):<br>
             return self.res<br>
    def myping(host):<br>
         result = verbose_ping01.verbose_ping(<u></u>host, count=500)<br>
         return result<br>
<br>
    class myWidget(QtGui.QWidget, Ui_Form):<br>
         def __init__(self,parent=None):<br>
             QtGui.QWidget.__init__(self, parent)<br>
             self.setupUi(self)<br>
             self.pushButton.clicked.<u></u>connect(self.draw)<br>
             self.pushButton_ping.clicked.<u></u>connect(self.doping)<br>
<br>
         def draw(self):<br>
             print  '='<br>
             sc = MyStaticMplCanvas(self.<u></u>matwidget, width=2, height=3, dpi=100)<br>
             sc.show()<br>
         def doping(self):<br>
             thisthread = MyThread(myping,("192.168.123.<u></u>50",))<br>
             thisthread.start()<br>
             thisthread.join()<br>
             time.sleep(0.5)<br>
             self.pingresult = thisthread.getRes()<br>
             newtext = "\n".join(self.pingresult)<br>
             self.pTE_pingresult.<u></u>setPlainText(newtext)<br>
<br>
    qApp = QtGui.QApplication(sys.argv)<br>
    aw = myWidget()<br>
    aw.show()<br>
    sys.exit(qApp.exec_())<br>
<br>
</div></div></blockquote><div class="HOEnZb"><div class="h5">
<br>
______________________________<u></u>_________________<br>
PyQt mailing list    <a href="mailto:PyQt@riverbankcomputing.com" target="_blank">PyQt@riverbankcomputing.com</a><br>
<a href="http://www.riverbankcomputing.com/mailman/listinfo/pyqt" target="_blank">http://www.riverbankcomputing.<u></u>com/mailman/listinfo/pyqt</a></div></div></blockquote></div><br></div>