美文网首页
2.在编程的大门口反复横跳(以PyQt5为例)

2.在编程的大门口反复横跳(以PyQt5为例)

作者: 挂东 | 来源:发表于2020-04-22 11:02 被阅读0次

前言

有一段时间,很努力去学习很多乱七八糟的东西,ps,视频剪辑,经济学,心理学,基本都如蜻蜓点水一般一点而过,只留下那一圈涟漪,最后什么都没剩下。忽略掉世界上少有的那几个全能天才,绝大多数人的成功都在于选中目标之后长达数年的耕耘。知识是学习不完的,时间跟精力也是有限的。所以,但凡选择一个新内容,新方向去学习,你都要先问一下自己,你的目的是什么,你想获得什么,可以是出于兴趣,也可以是工作需要,总之,时间很宝贵,要明确自己的目标。
学习一定要带着目标去学。所以,写下你的目标,再开始学习吧。希望看到文章的人都能找到自己的目标,都能知道自己想要什么。博学,慎思,明辨,笃行。
以本人为例,本人没有任何编程基础,也不知道编程用来干嘛,所以选择一个比较友好的,可以实现很多东西的python语言,想试着了解编程到底是什么,我到底有没有兴趣继续学下去。而学习qt因为部门的一个自动测试项目。需要完成的部分功能是,自动生成实验报告,从xml格式转换到docx格式。
下面开始学习吧
==========================分割线==========================

“任何理论的首要任务都是阐述令人混淆的术语和概念。只有实现了术语和概念的一致性,我们才能清晰、流畅地思考问题,并且期望与读者分享相同的观点。”------克劳塞维茨,《战争论》作者

所以在学习之前,我觉得可以先查一查,什么是C,什么是Java,什么叫面向对象,什么是数据结构,什么是算法,什么是编程规范。
这里讲点想法,编程其实就是把你解决问题的思路用程序的形式表示出来。

python语言学习

Python官方教程:docs.python.org
github python学习资源(推荐):https://github.com/zhanshenjuexing/Python-100-Days.git

python作为一门的面向对象语言,随着数据科学的兴起变成了当红辣子鸡。而且它的优势就在于简洁优雅的代码风格,以及足够多库的支持,开发效率高,对新手程序员十分友好,可以实现很多花里胡哨的功能,十分适合培养编程的兴趣。但它也有自己的局限性,就是运行效率真的低,而且库的支持太过给力,保姆式的封装很不利于程序员的成长。所以还是建议从C,C++入手,python的上限很高,但不适合直接入手。本人考虑到后续学习,考试的需要,决定丢掉还没入门的python,稍微总结一下python的知识点,开始转向C++。
(编程 = 数据结构 + 算法实现)
1、库的安装
pip install python-docx(经常以这种形式安装库,具体细节自己百度)
导入

import PyQt5
from PyQt5.Qtwidgets import Qapplication,Qwidget 

2、基本数据类型

  #python 中万物皆对象
  a = 12                #int
  b = 'a'                 #str
  c = [2,34]           #list
  d = {'a':2827}      #dict

2、函数定义

def fun_time(parameters):
        return True

3、类的定义

class ClassOfStu():
  def __init__(self):
      pass

  def test(self):
      pass

4、选择运行

  if __name__ == '__main__':
    main()

PyQt5编程学习

在此推荐一本书:《PyQt5快速开发与实战》王硕,孙洋洋著
链接:https://pan.baidu.com/s/19FBKkuDh-AGaKVl2DCqeUA
提取码:u9uk
PyQt5英文版教程:http://zetcode.com/gui/pyqt5/introduction/
中文版:https://maicss.gitbooks.io/pyqt5/content/
PyQt各控件查询:https://www.riverbankcomputing.com/static/Docs/PyQt5/api/qtgui/qcolor.html
python xml库:https://docs.python.org/zh-cn/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element

由于时间有限,对pyqt的了解止步于入门。下面总结一下pyqt的基本思路。
一个交互界面可以分为一个一个的框,文本框,菜单栏,树列表等等。在pyqt中,有各自的类对应每一个功能块(称为控件),所以开发的第一步是把这些控件怼上去,然后再设计单击控件,双击控件对应触发什么事件。
(主窗口包含控件,控件设置了某个布局,然后以此类推,不断装填,最后生成我们想要的效果)

from PyQt5.QtWidgets import Qapplication,Qwidget,QMainWindow

class UiMain(QMainWindow):
    def __init__(self):
        super().__init__()
        self.ui_init()
    
    def ui_init(self):
        self.widget = Qwidget()
        #主窗体设置
        self.setMinimumSize(900,600)
        self.setWindowIcon(QIcon('./image/plane.jpg'))
        self.setWindowTitle('topband')
        
        self.main_widget = QtWidgets.QWidget()#生成主控件
        self.main_layout = QtWidgets.QGridLayout()#生成主布局
        self.main_widget.setLayout(self.main_layout)
        
        #左侧主控件
        self.left_widget = QtWidgets.QWidget()
        self.left_layout = QtWidgets.QGridLayout()
        self.left_widget.setLayout(self.left_layout)
        self.left_widget.setFixedWidth(60)
        #右侧主控件
        self.right_widget = QtWidgets.QWidget()
   
        self.right_layout = QtWidgets.QGridLayout()
        self.right_widget.setLayout(self.right_layout)
        #左右侧添加进主窗体控件
        self.main_layout.addWidget(self.left_widget,0,0,10,1)
        self.main_layout.addWidget(self.right_widget,0,1,10,10)
        #设置为中心控件
        self.setCentralWidget(self.main_widget)    

def main():
    #文件路径
    #path = os.getcwd()
    #print(path)
    app = QtWidgets.QApplication(sys.argv)
    gui = MainUi(path)
    gui.show()
    sys.exit(app.exec_())
                  
if __name__ == '__main__':
    main()
#当然,运行后是空的,因为Qwidget控件是不会显示出来的,
#可以理解成一个空的框架吧,等你去装填东西。

python和pyqt5未入门总结到此结束,只是为了以后容易重新拿起来而已。针对之前的问题,这段时间的学习之后我有了以下答案:
编程语言真的是基础中的基础,只是一个小小的工具,主要还是看你感兴趣的方向。而编程本身是互联网时代解决问题的一种方式方法,并不需要你去纠结要不要学,因为你没资格纠结,只要你想在大城市混技术岗,只要是跟技术相关的,你肯定得打代码。所以学就完事了,技多不压身,这只是个工具而已,最主要的还是你想要往什么方向走的问题。
保持谦逊,继续学习,有问题可以交流,不同观点可以互相讨论辩论。路漫漫其修远兮,吾将上下而求索。为成为一个膜得感情的代码机器而不懈努力!!!

相关文章

  • 2.在编程的大门口反复横跳(以PyQt5为例)

    前言 有一段时间,很努力去学习很多乱七八糟的东西,ps,视频剪辑,经济学,心理学,基本都如蜻蜓点水一般一点而过,只...

  • 在大雨中反复横跳

    早上起来,下楼去上班,外面竟然下起了雨,意识里,家里是没有伞的,感觉距离上班的单位不远,于是决定冒雨前行。 ...

  • 反复横跳记

    阴 小雨 这两个月以来,我的心情总是在开心与不开心之间徘徊,渐渐的有了一定的抗性。 我一月二十一日回到河南,其实那...

  • 2021-07-20

    情绪反复横跳

  • 在断更之间反复横跳

    又一次断更,在刚刚断更7天后,很幸运的是7天后,又一次启动了复活卡,万般幸运。 我们疫情解封,高三复课,幼儿园复课...

  • 在自卑和自负间反复横跳

    说到自卑,相信10个人中有9个人体验过,也会愿意承认自己自卑。但是说到自负,就没几个人愿意承认。 自卑和自负,咋一...

  • 跳绳-20221212-周一

    在吃撑与跳绳中反复横跳,能弥补点的吧。

  • mardown让代码块按指定编程语言高亮

    以Rust为例 ``` rust ``` 在第一个```后面跟上编程语言的名字即可

  • 9 netty中Channel的类继承结构

    Netty中通道是对java原生网络编程api的封装,其顶级接口是Channel。以TCP编程为例 ,在java中...

  • 成功的秘诀在于反复横跳

    “成功的秘诀在于反复横跳。” 初看此句,读起来都拗口…… 更想不明白了:成功,不是要往上爬吗? 相信很多小伙伴(包...

网友评论

      本文标题:2.在编程的大门口反复横跳(以PyQt5为例)

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