美文网首页
第二个程序,链接一个函数

第二个程序,链接一个函数

作者: 郑司令 | 来源:发表于2017-05-22 22:56 被阅读0次

    想要点击一个按键,运行一个程序,是很自然的想法,如何去实现呢?

    写一个小程序:

    import sys
    from PyQt5.QtWidgets import QApplication, QWidget
    from PyQt5.QtGui import QIcon,QFont
    from PyQt5.QtWidgets import QWidget, QToolTip, QPushButton, QMessageBox, QApplication
    from PyQt5.QtCore import QCoreApplication
    
    class Example(QWidget):
    
        def __init__(self):
            super().__init__()
    
            self.initUI()
    
    
        def initUI(self):
    
            def helloworld():
                print('hello, world')
    
            ##创建窗口:
            self.setGeometry(300, 300, 300, 220)
            self.setWindowTitle('FirstPyQtProgram')
    
            ##创建按钮:
            qb = QPushButton('Button', self)##创建一个按钮
            qb.resize(qb.sizeHint())
            qb.move(50, 50)
            
            ##链接按钮行为:
            qb.clicked.connect(helloworld)
    
            ##创建按钮提示框:
            qb.setToolTip('This is a <b>HelloWorld</b> Button')
    
            self.show()
    
    
    if __name__ == '__main__':
    
    
        app = QApplication(sys.argv)
        ex = Example()
        sys.exit(app.exec_())
    
    

    这样子就实现了一个功能:点击按钮,就会调用helloworld函数。以此为基础,其实已经可以实现自己写的函数与pyqt图形界面的对接了。什么信号与槽,以后再说,我先用用总没事吧。

    将自己一个函数做个简单的ui:
    getdata.py:

    import urllib.request
    from bs4 import BeautifulSoup
    import os
    
    def getdata(url):
    
        response = urllib.request.urlopen(url)
    
        html = response.read()
    
        html = html.decode("gb2312")
    
        soup = BeautifulSoup(html, 'html.parser')
    
        book = soup.prettify()
    
        data = book.split('\n')
    
        num = len(data)
        i = 0
        ii = 1
    
        s = []
        ss = []
    
        while i < num:
            if data[i] == ' GPS控制点WGS84坐标':
                while ii == 1:
                    if data[i] ==  ' 采集数据':
                        ii = 0
                    else:
                        if data[i] !=  ' 采集数据':
                            s.append(data[i])
                            i += 1
            else:
                i += 1
    
        i = 0
        num = len(s)
    
        while i < num:
            ii = 0
            n = len(s[i])
            while ii < n:
                if s[i][ii] != '<':
                    flag = 0
                    ii += 1
                else:
                    flag = 1
                    ii = n
            if flag == 0:
                ss.append(s[i].strip())
                i += 1
            else:
                i += 1
    
        d = [ss[11]+'\n',
             ss[13].replace('.','#')+' '+ss[14].replace('.','#')+' '+ss[15]+'\n',
             ss[20].replace('.','#')+' '+ss[21].replace('.','#')+' '+ss[22]+'\n',
             ss[24].replace('.','#')+' '+ss[25].replace('.','#')+' '+ss[26]+'\n',
             ss[28].replace('.','#')+' '+ss[29].replace('.','#')+' '+ss[30]+'\n',
             ss[16].replace('.','#')+' '+ss[17].replace('.','#')+' '+ss[18]+'\n']
    
        i = 0
        num = len(d)
    
        while i < num:
            d[i] = d[i].replace('°','.')
            d[i] = d[i].replace('′','')
            d[i] = d[i].replace('″','')
            d[i] = d[i].replace('#','')
            d[i] = d[i].replace(':','.',1)
            d[i] = d[i].replace(':','',1)
            d[i] = d[i].replace(':','.',1)
            d[i] = d[i].replace(':','',1)
            i += 1
    
        
        f_write = open('WGS84坐标.txt','a')
        for i in d:
            f_write.write(i)
    
        f_write.close()
    
    
    
    
    

    readhtml.py:

    import sys
    from PyQt5.QtWidgets import QApplication, QWidget
    from PyQt5.QtGui import QIcon,QFont
    from PyQt5.QtWidgets import QWidget, QToolTip, QPushButton, QMessageBox, QApplication
    from PyQt5.QtCore import QCoreApplication
    
    import os
    import getdata
    
    class Example(QWidget):
    
        def __init__(self):
            super().__init__()
    
            self.initUI()
    
    
        def initUI(self):
    
            def readhtml():
                url ='file:///C:/Users/zk/Desktop/readhtml/html-%E6%80%9D%E6%8B%93%E5%8A%9B/E15_071613.html'
                getdata.getdata(url)
                print('完成')
                
            ##创建窗口:
            self.setGeometry(300, 300, 300, 220)
            self.setWindowTitle('FirstPyQtProgram')
    
            ##创建按钮:
            qb = QPushButton('ReadHtml', self)##创建一个按钮
            qb.resize(qb.sizeHint())
            qb.move(50, 50)
            
            ##链接按钮行为:
            qb.clicked.connect(readhtml)
    
            self.show()
    
    
    if __name__ == '__main__':
    
    
        app = QApplication(sys.argv)
        ex = Example()
        sys.exit(app.exec_())
    
    

    这样就简单地将函数与pyqt结合起来了。缺点还是有的:

    第一,若是可以实现点击按键,弹出选择文件或文件夹目录,就比较好;
    第二,窗口内应该添加文字提示;

    这两个要求应该还是比较容易实现的。好好努力,改进这个程序。

    相关文章

      网友评论

          本文标题:第二个程序,链接一个函数

          本文链接:https://www.haomeiwen.com/subject/wyiixxtx.html