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

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

作者: 郑司令 | 来源:发表于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结合起来了。缺点还是有的:

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

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

相关文章

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

    想要点击一个按键,运行一个程序,是很自然的想法,如何去实现呢? 写一个小程序: 这样子就实现了一个功能:点击按钮,...

  • glibc函数指定版本

    1.程序源码 2.编译程序 3.检验链接函数

  • _dl_runtime_resolve

    简介 在Linux中如果程序想要调用其它动态链接库的函数,必须要在程序加载的时候动态链接;在一个程序运行过程中,可...

  • 存储器管理

    程序运行分为三个阶段,编译,链接,装入。编译:将程序分为若干个目标块链接:将库函数以及各个目标块链接成一个整体装入...

  • 在swift工程中添加main

    在OC项目中main函数作为程序启动后的第二个函数被调用,然后在main函数中再启动UIApplication,并...

  • 7_揭开链接器的面纱(上)

    关键词:链接器的意义、链接器的工作内容、程序的启动过程、自定义程序入口函数 1. 链接器的意义 链接器的主要作用是...

  • makefile的入门学习

    1. makefile作用: 正常一个main函数通过编译链接可以生成可执行程序,例如: cc -...

  • 程序编译链接

    问:程序链接过程是把不同的程序段链接起来,是不是因为有的函数是用单独的头文件写着,所以需要include,链接的过...

  • 动态链接和静态链接的区别

    动态链接是指在生成可执行文件时不将所有程序用到的函数链接到一个文件,因为有许多函数在操作系统带的dll文件中,当程...

  • 动态链接库和静态链接库的对比

    静态链接库 静态连接库就是把(lib)文件中用到的函数代码直接链接进目标程序(exe等可执行文件),程序运行的时候...

网友评论

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

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