zoukankan      html  css  js  c++  java
  • PYQT5 学习

    zetcode教程 汉化版:
    https://maicss.gitbook.io/pyqt5-chinese-tutoral/

    官方网站:
    https://www.riverbankcomputing.com/static/Docs/PyQt5/introduction.html

    QT使用手册:
    https://doc.qt.io/archives/qtjambi-4.5.2_01/com/trolltech/qt/gui/QComboBox.html

    学习策略

    1、明确需求
    工作时是项目驱动,明确需求后,在网上查找相关资源,一步步累加功能。最好先搭建一个框架,之后就是在此框架上添加各种功能。

    安装

    pip install pyqt5
    # qt5的图形界面工具,如qtdesinger
    pip install pyqt5-tools 
    
    

    布局管理

    Qt Designer中,工具箱的最上方有4种布局,分别是垂直布局、水平布局、栅格布局和表单布局。
    实现布局有2种方式,通过 布局管理器 与 容器控件。

    一个工程用界面通常由以下部分组成:
    菜单栏
    工具栏
    左侧

    常用控件

    Qt中将表格、简单列表、树状列表称为"表项视图类" item view class;
    有两种实现方式:
    Item Views(Model-Based),以view结尾,如QListView等;
    Item Widgets(Item-Based),以widget结尾,如QListWidget等;
    区别:
    1、Views 是 Widgets 类的父类;
    2、Views是MVC架构的一种简化;Widgets将数据、展示、控制合在一起;实际上Widgets在Views基础上绑定了一个默认的存储数据并提供了相关方法。

    QPalette调色板

    # 设置背景颜色 或 背景图片
    palette1 = QtGui.QPalette(self)
    palette1.setColor(self.backgroundRole(), QColor(192,253,123))   # 设置背景颜色
    palette1.setBrush(self.backgroundRole(), QtGui.QBrush(QtGui.QPixmap('../../../Document/images/17_big.jpg')))   # 设置背景图片
    
    self.setPalette(palette1)
    self.setAutoFillBackground(True) # 不设置也可以
    
    # self.setWindowTitle('Icon') # 设置窗体标题
    # self.setWindowIcon(QtGui.QIcon('../../../Document/images/firefox.png'))  # 设置窗体ICON
    

    Qbutton

    button.setText("haah") # 改变文本
    button.setEnabled(True) # 使能与禁用
    
    

    QLineEdit 单行文本

    只能单行编辑的文本框

    edit.text() # 获取文本
    edit.setText("haha") # 设置文本
    edit.clear() # 清除所有文本
    
    edit.setPlaceholderText('请在这里输入URL') # 设置默认提示文字 
    

    QPlainTextEdit 多行文本

    edit.toPlainText() # 获取文本
    edit.setPlainText("haha") # 设置文本
    edit.appendPlainText("haha") # 在末尾添加文本
    edit.clear() # 清除所有文本
    
    edit.setPlaceholderText('请在这里输入URL') # 设置默认提示文字 
    

    QComboBox 组合框

    method = cbox.currentText() # 当前 选中的选项 的文本
    cbox.clear() # 清空选项
    cbox.addItems(['by1','by2','by3'])
    

    QSpinBox 数字输入框

    number = box.value() # 返回的是整数对象
    box.setValue(100)
    

    信号returnPressed: 按下回车键
    passwordEdit.returnPressed.connect(onLogin)

    QAction

    用于菜单栏、工具栏或自定义快捷键的抽象动作行为。

    Pyqt 中__init__(self,parent==None) parent理解

    参考:

    在PyQt中,所有class都是从QObject派生而来,QWidget对象就可以有一个parent。这种parent-child关系主要用于两个方面:

    • 没有parent的QWidget类被认为是最上层的窗体(通常是MainWindow),由于MainWindow的一些操作生成的新窗体对象,parent都应该指向MainWindow。
      由于parent-child关系的存在,它保证了child窗体在主窗体被回收之时也被回收。
    • parent作为构造函数的最后一个参数被传入,但通常情况下不必显示去指定parent对象。因为当调用局管理器时,部局管理器会自动处理这种parent-child关系。但是在一些特殊的情况下,我们必须显示的指定parent-child关系。如当生成的子类不是QWidget对象但继承了QObject对象,用作dock widgets的QWidget对象。

    QTreeWidget

    官方链接:https://doc.qt.io/archives/qtjambi-4.5.2_01/com/trolltech/qt/gui/QTreeWidget.html
    第一手材料,需要了解大概,知道怎么用。

    QTreeWidgetItem:想要编辑时需要在代码中添加
    child2.setFlags(child2.flags()| Qt.ItemIsEditable) ;
    且在Qt Designer中做相关操作;

    Qt Designer中可以做的操作
    1、editTriggers:DoubleClicked;
    2、selectionMode:ExtendedSelection;
    3、drapEnabled:
    drapDropMode:DragDrop;
    defaultDropAction:CopyAction;

  • 相关阅读:
    python学习之调试:
    python学习之调试 错误捕捉及处理
    python之面向对象
    python学习之模块:
    python学习之内部函数:
    python学习之高级特性:
    python学习之结构语句
    python学习之列表元组,字典
    getopt使用例子
    找到系统盘被打满文件
  • 原文地址:https://www.cnblogs.com/qev211/p/14867812.html
Copyright © 2011-2022 走看看