Qt编程

一、官方文档

    1. pyqt: Qt for Python — Qt for Python

二、序列文章

    1. Pyqt5笔记_Suyuoa的博客-CSDN博客

    2. 万丈高楼平地起:学习Qt5 - 知乎 (zhihu.com)

    3. PyQt5入门(十五)容器控件 - it610.com

    4. PyQt5图形界面编程 - 知乎 (zhihu.com)    很全面

三、 应用类

    1.  以下程序可以实现拖拽一个按钮(右击)

        http://code.py40.com/pyqt5/30.html

    2. draw_pull rect: python – 使用鼠标调整QGraphicsItem的大小 - 【Python】 (chinaoc.com.cn) 

    3. 工具箱(c++):   

         1)Qt实战12.可自由展开的ToolBox - Qt小罗 - 博客园 (cnblogs.com)

         2)(20条消息) Qt之容器控件(QToolBox)_Shijia Yin的博客-CSDN博客_qt qtoolbox

   4. 悬浮停靠窗:

       1)    实战PyQt5: 052-停靠窗口控件QDockWidget: (20条消息) 实战PyQt5: 052-停靠窗口控件QDockWidget_seniorwizard的博客-CSDN博客_pyqt5 qdockwidget

       1) Qt实战10.支持最小化和最大化的QDockWidget (icode9.com)

       2)c++版本:  (20条消息) QDockWidget——可任意拖动的窗口_菜鸟杂记的博客-CSDN博客_qdockwidget

   5. 选项卡控件QTabWidget: PyQT5实现选项卡窗口、堆栈窗口、停靠窗口、子窗口_Python_脚本之家 (zzvips.com)

   6. 容纳多文档窗口(多子窗口)QMdiArea, QMdiSubWindow

       PyQT5实现选项卡窗口、堆栈窗口、停靠窗口、子窗口_Python_脚本之家 (zzvips.com)

  7.  pyqtgraph绘制流程图

      (21条消息) pyqt5+pyqtgraph绘制流程图_OconanO的博客-CSDN博客_pyqt流程图

    8. 创建UE蓝图

       python编程使用PyQt创建UE蓝图_python_脚本之家 (jb51.net)

    9. 节点编辑器

       可视化节点编辑器(Node Editor) - Pulaski - 博客园 (cnblogs.com)

四、说明类

  1. QDrag原理

    (20条消息) Qt拖放(1):拖放基本原理(QDrag类)_hyongilfmmm的博客-CSDN博客_qdrag

  2. 节点编辑器

    (21条消息) mahuatengmmp的博客_CSDN博客-pyqt5,节点编辑器,爬虫领域博主

   3. qss语法概述

      (22条消息) QSS详解_落丁丁的博客-CSDN博客_qss详解

  4. 论Qt4的视口(ViewPort)与窗口(Window)

  5. Qt拖放详细说明 

      (22条消息) Qt拖放(1):拖放基本原理(QDrag类)_hyongilfmmm的博客-CSDN博客_qdrag

  6. Qt事件传递机制

    1) Qt 事件处理机制 (一):事件处理器 - 知乎 (zhihu.com)

    2)Qt 事件处理机制 (二):事件过滤器 - 知乎 (zhihu.com)

  7. 正则表达式 

    (23条消息) 利用QRegExp限制输入框只接受数值(可以是小数)_liji_digital的博客-CSDN博客_qregexp 数字

8. python调用c++程序以及python调c++处理图像

(40条消息) python 调用c++程序 以及python调c++处理图像_遥望星河的博客-CSDN博客

五、类介绍

> QImage

    (8条消息) 实战PyQt5: 121-使用QImage实现一个看图应用_seniorwizard的专栏-CSDN博客_pyqt5 qimage

> QScrollArea

    1. (8条消息) QT的自动滚动区QScrollArea的用法,图文详解_野生猿-群号1025127672-CSDN博客_qscrollarea

    2. 使用滚动条和滑动器 (glxxw2018.com)

    3. QScrollBar Class | Qt Widgets 5.9

> QSizePolicy

    (8条消息) Qt 之 QSizePolicy_青春不老,奋斗不止!-CSDN博客

> QPalette

    QPalette的用法 - toby.zl - 博客园 (cnblogs.com)

>PyQt 布局(Layout)

    4. PyQt 布局(Layout) - 知乎 (zhihu.com)

> QTabWidget

    4. PyQt 布局(Layout) - 知乎 (zhihu.com)

> 信号和槽

    pyqtsignal()作用_AI界扛把子的博客-CSDN博客_pyqtsignal

> QToolBox

    PyQt5系列教程(25): 工具箱(QToolBox) - 知乎 (zhihu.com)

> QToolButton

    30.QToolButton_Suyuoa的博客-CSDN博客_qtoolbutton

> QPainter

    (20条消息) PyQt5基本控件详解之QPainter(十七)_jia666666的博客-CSDN博客_pyqt qpainter

> QPixmap

   1)  (20条消息) QPixmap_友善啊,朋友的博客-CSDN博客_qpixmap

   2) QPixmap图像抗锯齿显示

      (20条消息) QT | QPainter,PaintEvent,setRenderHint(防止图形走样)_parker_1的博客-CSDN博客_setrenderhints

> QMenu, QAction, QToolBar, QMenuBar, QStatusBar
    1. QMenuBar,QMenu和QAction(QMenuBar, QMenu & QAction)_学习PyQt|WIKI教程 (iowiki.com)

    2. PyQt5-菜单栏工具栏状态栏的使用(QMenuBar、QToolBar、QStatusBar) - zyg_100 - 博客园 (cnblogs.com)

> QPalette

    (20条消息) 实战PyQt5: 059-颜色对话框QColorDialog_seniorwizard的博客-CSDN博客_pyqt5 qcolordialog

> socket

    (20条消息) python实现tcp/ip_张芮晨的博客-CSDN博客_python tcpip

> QDockWidget

   1.  PyQt5系列教程(52):QDockWidget的使用 - 知乎 (zhihu.com)

   2. (20条消息) 实战PyQt5: 052-停靠窗口控件QDockWidget_seniorwizard的博客-CSDN博客_pyqt5 qdockwidget

> QMdiArea

    1. (20条消息) PyQt5入门(十五)容器控件_深海鱼肝油ya的博客-CSDN博客_pyqt5容器

    2. (22条消息) PyQt5中QMdiArea方法的使用_百里不守约_45690024的博客-CSDN博客_pyqt5 qmdiarea

    3. Qt QMdiArea和QMdiSubWindow的基本用法

QPainterPath

      关于QT的QPainterPath::arcTo 详解 - 奥雷连诺 - 博客园 (cnblogs.com)

>QSignalMapper

    1. qt映射器QSignalMapper的理解 - sgggr - 博客园 (cnblogs.com)

    2. (这里有个错误,后面那个SIGNAL要改为SLOT)  QSignalMapper使用以及替换方法 - 云+社区 - 腾讯云 (tencent.com)

> QListWidget

   1. (22条消息) PyQt5高级界面控件之QListWidget(三)_jia666666的博客-CSDN博客_pyqt5 qlistwidget

> QSetting

   (22条消息) QSettings使用方法_从0开始学编程的博客-CSDN博客_qsettings

> python exec

    (23条消息) 23.Python中的exec函数_bai666ai的博客-CSDN博客_python中的exec函数

   (23条消息) python里使用exec函数,报错NameError: name ‘XXX‘ is not defined的解决办法_qiongtaiyu的博客-CSDN博客

> QTableWidget

    python - 如何获取Pyqt5表小部件中的行和列位置(由鼠标事件突出显示)? | 行和列 (lmlphp.com)

    在PyQt5中上下移动行 - 问答 - Python中文网 (cnpython.com)

> GraphicsRectItem 

####以下代码,限制QGraphicsItem不超过sceneRect设定的范围

def itemChange(self, change, value):

#### 限制矩形只能在scene里面。

    if change == QGraphicsItem.ItemPositionChangeand self.scene():

          screct =self.scene().sceneRect()

          x, y = value.x(), value.y()

          boundrect =self.boundingRect()

          width, height = boundrect.width(), boundrect.height()

           lt_point = QPointF(self.start_x+x, self.start_y+y)  ####start_x是外接包围框的起始放置的位置

           rb_point = QPointF(self.start_x+x+width, self.start_y+y+height)

           if not screct.contains(lt_point)or not screct.contains(rb_point):

                  value.setX(min(screct.right()-self.start_x-width, max(value.x(), screct.left()-self.start_x)))

                  value.setY(min(screct.bottom()-self.start_y-height, max(value.y(), screct.top()-self.start_y)))

                  return value

     return QGraphicsRectItem.itemChange(self, change, value)

> QProcess

    Run external programs in PyQt5 with QProcess, with streams and progress bars (pythonguis.com)

>qtreewidget绘制网格

class QTreeWidgetBase(QTreeWidget):

    def __init__(self,parent):

        super(QTreeWidgetBase, self).__init__(parent)

def paintEvent(self,event):

        painter= QPainter(self.viewport())

painter.setPen(QPen(Qt.gray,1))

item= QTreeWidgetItemIterator(self)

while item.value():

                rtItem= self.visualItemRect(item.value())

if(item== self.topLevelItem(0)):

                    painter.drawLine(rtItem.topLeft(), rtItem.topRight())

painter.drawLine(rtItem.topRight(), rtItem.bottomRight())

painter.drawLine(rtItem.bottomLeft(), rtItem.bottomRight())

painter.drawLine(rtItem.topLeft(), rtItem.bottomLeft())

ptStart= QPoint(rtItem.right(), rtItem.top())

ptEnd= QPoint(rtItem.right(), rtItem.bottom())

for iin range(self.columnCount()-1,0,-1):

                    col_width=  self.columnWidth(i)

ptStart+= QPoint(0- col_width,0)

ptEnd+= QPoint(0 - col_width,0)

painter.drawLine(ptStart, ptEnd)

item= item.__iadd__(1)

super(QTreeWidgetBase, self).paintEvent(event)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容