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

前言

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,527评论 5 470
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,314评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,535评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,006评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,961评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,220评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,664评论 3 392
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,351评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,481评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,397评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,443评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,123评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,713评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,801评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,010评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,494评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,075评论 2 341