美文网首页
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为例)

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