Qt编程
一、官方文档
1. pyqt: Qt for Python — Qt for Python
二、序列文章
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 数字
五、类介绍
> QImage
(8条消息) 实战PyQt5: 121-使用QImage实现一个看图应用_seniorwizard的专栏-CSDN博客_pyqt5 qimage
> QScrollArea
1. (8条消息) QT的自动滚动区QScrollArea的用法,图文详解_野生猿-群号1025127672-CSDN博客_qscrollarea
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的基本用法
关于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)