From 3d5d7c57e7fae349bc9e1f61a750e983115cd03d Mon Sep 17 00:00:00 2001 From: zlhcsm <522496405@qq.com> Date: Sun, 29 Dec 2019 16:47:50 +0800 Subject: [PATCH 01/15] Create README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..dc4d406 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +## [信号与槽](src/SignalSlot/) +### 信号与槽自动连接 +### [自定义信号](src/SignalSlot/CustomSignal.py) From 905e96fafd10533b06e19dab92fc12df29d9329e Mon Sep 17 00:00:00 2001 From: zlhcsm <522496405@qq.com> Date: Sun, 29 Dec 2019 18:26:35 +0800 Subject: [PATCH 02/15] Update README.md --- README.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index dc4d406..fb8d616 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,10 @@ +# Pyqt5示例大全 +## 基础入门 +[Hello world!](src/basic/First.py) +[环境说明](src/basic/搭建PyQt5开发环境.txt) +## 容器 +[] ## [信号与槽](src/SignalSlot/) -### 信号与槽自动连接 -### [自定义信号](src/SignalSlot/CustomSignal.py) +[信号与槽自动连接](src/SignalSlot/AutoSignalSlot.py) +[自定义信号](src/SignalSlot/CustomSignal.py) +[] From beb0856b3434bad27b44c6cd6d299a98bc610bc8 Mon Sep 17 00:00:00 2001 From: zlhcsm <522496405@qq.com> Date: Sun, 29 Dec 2019 18:38:46 +0800 Subject: [PATCH 03/15] Update README.md --- README.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index fb8d616..222b917 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,14 @@ ## 基础入门 [Hello world!](src/basic/First.py) [环境说明](src/basic/搭建PyQt5开发环境.txt) -## 容器 -[] +## 容器组件 +[停靠组件](src/containers/DockWidget.py) +[容纳多文档的窗口](src/containers/MultiWindows.py) +[堆栈窗口控件(QStackedWidget)](src/containers/QStackedWidget.py) +> 类似于一个菜单栏,选项卡控件更像是一个横着的堆栈窗口组件 + +[滚动条控件(QScrollBar)](src/containers/ScrollBar.py) +[选项卡控件:QTabWidget](src/containers/TabWidget.py) ## [信号与槽](src/SignalSlot/) [信号与槽自动连接](src/SignalSlot/AutoSignalSlot.py) [自定义信号](src/SignalSlot/CustomSignal.py) From 2550ab4194f5bbed170617d39fba2a8db0490732 Mon Sep 17 00:00:00 2001 From: zlhcsm <522496405@qq.com> Date: Sun, 29 Dec 2019 18:48:43 +0800 Subject: [PATCH 04/15] Update README.md --- README.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 222b917..07fe497 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,18 @@ ## 基础入门 [Hello world!](src/basic/First.py) [环境说明](src/basic/搭建PyQt5开发环境.txt) +[窗口类型]() + +## 基础组件与操作 +### 组件 +[复选框控件(QCheckBox)](src/controls/QCheckBoxDemo.py) +[下拉列表控件(QComboBox)](src/controls/QComboBoxDemo.py) +### 操作 +[窗口居中](src/controls/CenterForm.py) +[状态栏消息](src/controls/FirstMainWin.py) +[设置图标](src/controls/IconForm.py) + + ## 容器组件 [停靠组件](src/containers/DockWidget.py) [容纳多文档的窗口](src/containers/MultiWindows.py) @@ -9,7 +21,7 @@ > 类似于一个菜单栏,选项卡控件更像是一个横着的堆栈窗口组件 [滚动条控件(QScrollBar)](src/containers/ScrollBar.py) -[选项卡控件:QTabWidget](src/containers/TabWidget.py) +[选项卡控件:(QTabWidget)](src/containers/TabWidget.py) ## [信号与槽](src/SignalSlot/) [信号与槽自动连接](src/SignalSlot/AutoSignalSlot.py) [自定义信号](src/SignalSlot/CustomSignal.py) From 6d9eff7013e9af3ab586c9b2a80446a9b1af2b2f Mon Sep 17 00:00:00 2001 From: zlhcsm <522496405@qq.com> Date: Sun, 29 Dec 2019 19:21:39 +0800 Subject: [PATCH 05/15] Update README.md --- README.md | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 07fe497..1b04015 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,39 @@ # Pyqt5示例大全 ## 基础入门 [Hello world!](src/basic/First.py) -[环境说明](src/basic/搭建PyQt5开发环境.txt) -[窗口类型]() +[环境说明.txt](src/basic/搭建PyQt5开发环境.txt) +[窗口类型.txt](src/controls/主窗口类型.txt) ## 基础组件与操作 ### 组件 [复选框控件(QCheckBox)](src/controls/QCheckBoxDemo.py) [下拉列表控件(QComboBox)](src/controls/QComboBoxDemo.py) +[标签控件(QLabel)](src/controls/QLabelDemo.py) +[标签与伙伴控件(QLabel)](src/controls/QLabelBuddy.py) +[文本输入框控件(QLineEdit)](src/controls/QLineEditDemo.py) +[文本输入框回显模式(QLineEdit)](src/controls/QLineEditEchoMode.py) +[文本输入框校验](src/controls/QLineEditMask.py) +[按钮组件(QPushButton等)](src/controls/QPushButtonDemo.py) +[单选按钮控件(QRadioButton)](src/controls/QRadioButtonDemo.py) +[滑块控件(QSlider)](src/controls/QSliderDemo.py):可以用来完成放大缩小操作 +[计数器控件(QSpinBox)](src/controls/QSpinBoxDemo.py) +[编辑框组件(QTextEdit)](src/controls/QTextEditDemo.py) + ### 操作 [窗口居中](src/controls/CenterForm.py) [状态栏消息](src/controls/FirstMainWin.py) -[设置图标](src/controls/IconForm.py) +[设置图标](src/controls/IconForm.py) +[退出窗口](src/controls/QuitApplication.py) +[屏幕坐标](src/controls/ScreenGeometry.py) +[设置组件提示消息](src/controls/Tooltip.py) +## 对话框 +[对话框:QDialog](src/dialogs/QDialogDemo.py) +[颜色对话框:QColorDialog](src/dialogs/QColorDialog.py) +[字体对话框:QFontDialog](src/dialogs/QColorDialog.py) +[文件对话框:QFileDialog](src/dialogs/QFileDialogDemo.py) +[输入对话框:QInputDialog](src/dialogs/QInputDialogDemo.py) +[消息对话框:QMessageBox](src/dialogs/QMessageBox.py) ## 容器组件 [停靠组件](src/containers/DockWidget.py) From d9fddb6a95b39f0b20c5111788fe5edef65f190b Mon Sep 17 00:00:00 2001 From: zlhcsm <522496405@qq.com> Date: Sun, 29 Dec 2019 20:00:59 +0800 Subject: [PATCH 06/15] Update README.md --- README.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1b04015..278d3d9 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,11 @@ [滚动条控件(QScrollBar)](src/containers/ScrollBar.py) [选项卡控件:(QTabWidget)](src/containers/TabWidget.py) ## [信号与槽](src/SignalSlot/) -[信号与槽自动连接](src/SignalSlot/AutoSignalSlot.py) -[自定义信号](src/SignalSlot/CustomSignal.py) +[信号与槽自动连接](src/SignalSlot/AutoSignalSlot.py) +[自定义信号](src/SignalSlot/CustomSignal.py) [] + +## 多线程 +[让程序自动关闭](src/multithread/AutoCloseWindow.py) +[计数器](src/multithread/Counter.py) +[动态显示时间](src/multithread/ShowTime.py) From ca8a004e2419e84c5afc5ca24018175a4fd56379 Mon Sep 17 00:00:00 2001 From: zlhcsm <522496405@qq.com> Date: Mon, 30 Dec 2019 09:17:39 +0800 Subject: [PATCH 07/15] Update README.md --- README.md | 47 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 278d3d9..3054c4e 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,36 @@ [屏幕坐标](src/controls/ScreenGeometry.py) [设置组件提示消息](src/controls/Tooltip.py) +## 菜单栏/工具栏/状态栏 +[创建和使用菜单栏](src/menu_toolbar_statusbar/Menu.py) +[创建和使用工具栏](src/menu_toolbar_statusbar/Toolbar.py) +[创建和使用状态栏](src/menu_toolbar_statusbar/StatusBar.py) + +## 树/表格 +### 树 +[树控件(QTreeWidget)的基本用法](src/table_tree/BasicTreeWidget.py) +[显示列表数据(QListView控件)](src/table_tree/ListView.py) +[扩展的列表控件(QListWidget)](src/table_tree/ListWidget.py) +[添加、修改和删除树控件中的节点](src/table_tree/ModifyTree.py) +[为树节点添加响应事件](src/table_tree/TreeEvent.py) + + +### 表格 +[扩展的表格控件(QTableWidget)](src/table_tree/TableWidget.py) +[设置单元格字体和颜色](src/table_tree/CellFontAndColor.py) +[设置单元格的文本对齐方式](src/table_tree/CellTextAlignment.py) +[设置单元格尺寸](src/table_tree/CellSize.py) +[合并单元格](src/table_tree/Span.py) +[在单元格中放置控件](src/table_tree/PlaceControlInCell.py) +[按列排序](src/table_tree/ColumnSort.py) +[改变单元格中图片的尺寸](src/table_tree/CellImageSize.py) +[在单元格中实现图文混排的效果](src/table_tree/CellImageText.py) +[在表格中快速定位到特定的行](src/table_tree/DataLocation.py) +[显示二维表数据(QTableView控件)](src/table_tree/TableView.py +[在表格中显示上下文菜单]() + + + ## 对话框 [对话框:QDialog](src/dialogs/QDialogDemo.py) [颜色对话框:QColorDialog](src/dialogs/QColorDialog.py) @@ -35,6 +65,10 @@ [输入对话框:QInputDialog](src/dialogs/QInputDialogDemo.py) [消息对话框:QMessageBox](src/dialogs/QMessageBox.py) +## 日历和时间 +[不同风格日历和时间 QDateTimeEdit](src/calendar_time/DateTimeEdit.py) +[日历控件](src/calendar_time/MyCalendar.py) + ## 容器组件 [停靠组件](src/containers/DockWidget.py) [容纳多文档的窗口](src/containers/MultiWindows.py) @@ -44,11 +78,20 @@ [滚动条控件(QScrollBar)](src/containers/ScrollBar.py) [选项卡控件:(QTabWidget)](src/containers/TabWidget.py) ## [信号与槽](src/SignalSlot/) +[入门示例](src/SignalSlot/SignalSlotDemo.py) [信号与槽自动连接](src/SignalSlot/AutoSignalSlot.py) [自定义信号](src/SignalSlot/CustomSignal.py) -[] +[Lambda表达式](src/SignalSlot/LambdaSlotArg.py) +[为类添加多个信号](src/SignalSlot/MultiSignal.py) +[信号槽N对N连接与断开](src/SignalSlot/NNSignal.py) +[Override(覆盖)槽函数](src/SignalSlot/OverrideSlot.py) +[使用Partial对象为槽函数传递参数](src/SignalSlot/PartialSlotArg.py) +[窗口信号](src/SignalSlot/WinSignal.py) + + ## 多线程 [让程序自动关闭](src/multithread/AutoCloseWindow.py) [计数器](src/multithread/Counter.py) -[动态显示时间](src/multithread/ShowTime.py) +[动态显示时间](src/multithread/ShowTime.py) +[多线程更新UI数据](src/SignalSlot/ThreadUpdateUI.py) From de31ee60546e46241dff898bc4bb9fd9575cb0e8 Mon Sep 17 00:00:00 2001 From: zlhcsm <522496405@qq.com> Date: Mon, 30 Dec 2019 10:17:17 +0800 Subject: [PATCH 08/15] Update README.md --- README.md | 48 ++++++++++++++++++++++++++++++++++-------------- 1 file changed, 34 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 3054c4e..bf48456 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,22 @@ [Hello world!](src/basic/First.py) [环境说明.txt](src/basic/搭建PyQt5开发环境.txt) [窗口类型.txt](src/controls/主窗口类型.txt) +[.ui文件转.py文件](src/designer/将.ui文件转换为.py文件.txt) + +## 布局与设计 +[绝对布局](src/layout/AbsoluteLayout.py) +[栅格布局](src/layout/Calc.py +[表单布局(QFormLayout)](src/layout/FormLayout.py) +[栅格布局:表单设计](src/layout/GridForm.py) +[水平盒布局(QHBoxLayout)](src/layout/HBoxLayout.py) +[垂直盒布局(QBoxLayout)](src/layout/VBoxLayout.py) +[设置控件的对齐方式](src/layout/HBoxLayoutAlign.py) +[让按钮永远在窗口右下角](src/layout/RightBottomButton.py) +[拖动控件之间的边界(QSplitter)](src/layout/Splitter.py) +[设置伸缩量(addStretch)](src/layout/Stretch.py) + + + ## 基础组件与操作 ### 组件 @@ -32,29 +48,31 @@ [创建和使用工具栏](src/menu_toolbar_statusbar/Toolbar.py) [创建和使用状态栏](src/menu_toolbar_statusbar/StatusBar.py) +## 剪切板 +[使用剪贴板](src/drapclip/ClipBoard.py) +[让控件支持拖拽动作]() + ## 树/表格 ### 树 -[树控件(QTreeWidget)的基本用法](src/table_tree/BasicTreeWidget.py) -[显示列表数据(QListView控件)](src/table_tree/ListView.py) -[扩展的列表控件(QListWidget)](src/table_tree/ListWidget.py) -[添加、修改和删除树控件中的节点](src/table_tree/ModifyTree.py) -[为树节点添加响应事件](src/table_tree/TreeEvent.py) +[树控件(QTreeWidget)的基本用法](src/table_tree/BasicTreeWidget.py) +[显示列表数据(QListView控件)](src/table_tree/ListView.py) +[扩展的列表控件(QListWidget)](src/table_tree/ListWidget.py) +[添加、修改和删除树控件中的节点](src/table_tree/ModifyTree.py) +[为树节点添加响应事件](src/table_tree/TreeEvent.py) ### 表格 -[扩展的表格控件(QTableWidget)](src/table_tree/TableWidget.py) -[设置单元格字体和颜色](src/table_tree/CellFontAndColor.py) -[设置单元格的文本对齐方式](src/table_tree/CellTextAlignment.py) +[扩展的表格控件(QTableWidget)](src/table_tree/TableWidget.py) +[设置单元格字体和颜色](src/table_tree/CellFontAndColor.py) +[设置单元格的文本对齐方式](src/table_tree/CellTextAlignment.py) [设置单元格尺寸](src/table_tree/CellSize.py) -[合并单元格](src/table_tree/Span.py) +[合并单元格](src/table_tree/Span.py) [在单元格中放置控件](src/table_tree/PlaceControlInCell.py) [按列排序](src/table_tree/ColumnSort.py) [改变单元格中图片的尺寸](src/table_tree/CellImageSize.py) -[在单元格中实现图文混排的效果](src/table_tree/CellImageText.py) -[在表格中快速定位到特定的行](src/table_tree/DataLocation.py) -[显示二维表数据(QTableView控件)](src/table_tree/TableView.py -[在表格中显示上下文菜单]() - +[在单元格中实现图文混排的效果](src/table_tree/CellImageText.py) +[在表格中快速定位到特定的行](src/table_tree/DataLocation.py) +[显示二维表数据(QTableView控件)](src/table_tree/TableView.py) ## 对话框 @@ -95,3 +113,5 @@ [计数器](src/multithread/Counter.py) [动态显示时间](src/multithread/ShowTime.py) [多线程更新UI数据](src/SignalSlot/ThreadUpdateUI.py) + +## [实战项目](src/project/) From 7d0191003c7b79ef88797ef51dc6f7838b71df36 Mon Sep 17 00:00:00 2001 From: zlhcsm <522496405@qq.com> Date: Mon, 30 Dec 2019 10:20:01 +0800 Subject: [PATCH 09/15] Update README.md --- README.md | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index bf48456..f3d612d 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,19 @@ # Pyqt5示例大全 ## 基础入门 [Hello world!](src/basic/First.py) -[环境说明.txt](src/basic/搭建PyQt5开发环境.txt) -[窗口类型.txt](src/controls/主窗口类型.txt) +[环境说明.txt](src/basic/搭建PyQt5开发环境.txt) +[窗口类型.txt](src/controls/主窗口类型.txt) [.ui文件转.py文件](src/designer/将.ui文件转换为.py文件.txt) ## 布局与设计 -[绝对布局](src/layout/AbsoluteLayout.py) -[栅格布局](src/layout/Calc.py -[表单布局(QFormLayout)](src/layout/FormLayout.py) -[栅格布局:表单设计](src/layout/GridForm.py) +[绝对布局](src/layout/AbsoluteLayout.py) +[栅格布局](src/layout/Calc.py) +[表单布局(QFormLayout)](src/layout/FormLayout.py) +[栅格布局:表单设计](src/layout/GridForm.py) [水平盒布局(QHBoxLayout)](src/layout/HBoxLayout.py) [垂直盒布局(QBoxLayout)](src/layout/VBoxLayout.py) [设置控件的对齐方式](src/layout/HBoxLayoutAlign.py) -[让按钮永远在窗口右下角](src/layout/RightBottomButton.py) +[让按钮永远在窗口右下角](src/layout/RightBottomButton.py) [拖动控件之间的边界(QSplitter)](src/layout/Splitter.py) [设置伸缩量(addStretch)](src/layout/Stretch.py) @@ -23,10 +23,10 @@ ## 基础组件与操作 ### 组件 [复选框控件(QCheckBox)](src/controls/QCheckBoxDemo.py) -[下拉列表控件(QComboBox)](src/controls/QComboBoxDemo.py) +[下拉列表控件(QComboBox)](src/controls/QComboBoxDemo.py) [标签控件(QLabel)](src/controls/QLabelDemo.py) [标签与伙伴控件(QLabel)](src/controls/QLabelBuddy.py) -[文本输入框控件(QLineEdit)](src/controls/QLineEditDemo.py) +[文本输入框控件(QLineEdit)](src/controls/QLineEditDemo.py) [文本输入框回显模式(QLineEdit)](src/controls/QLineEditEchoMode.py) [文本输入框校验](src/controls/QLineEditMask.py) [按钮组件(QPushButton等)](src/controls/QPushButtonDemo.py) @@ -39,9 +39,9 @@ [窗口居中](src/controls/CenterForm.py) [状态栏消息](src/controls/FirstMainWin.py) [设置图标](src/controls/IconForm.py) -[退出窗口](src/controls/QuitApplication.py) -[屏幕坐标](src/controls/ScreenGeometry.py) -[设置组件提示消息](src/controls/Tooltip.py) +[退出窗口](src/controls/QuitApplication.py) +[屏幕坐标](src/controls/ScreenGeometry.py) +[设置组件提示消息](src/controls/Tooltip.py) ## 菜单栏/工具栏/状态栏 [创建和使用菜单栏](src/menu_toolbar_statusbar/Menu.py) @@ -80,12 +80,12 @@ [颜色对话框:QColorDialog](src/dialogs/QColorDialog.py) [字体对话框:QFontDialog](src/dialogs/QColorDialog.py) [文件对话框:QFileDialog](src/dialogs/QFileDialogDemo.py) -[输入对话框:QInputDialog](src/dialogs/QInputDialogDemo.py) +[输入对话框:QInputDialog](src/dialogs/QInputDialogDemo.py) [消息对话框:QMessageBox](src/dialogs/QMessageBox.py) ## 日历和时间 -[不同风格日历和时间 QDateTimeEdit](src/calendar_time/DateTimeEdit.py) -[日历控件](src/calendar_time/MyCalendar.py) +[不同风格日历和时间 QDateTimeEdit](src/calendar_time/DateTimeEdit.py) +[日历控件](src/calendar_time/MyCalendar.py) ## 容器组件 [停靠组件](src/containers/DockWidget.py) @@ -96,20 +96,20 @@ [滚动条控件(QScrollBar)](src/containers/ScrollBar.py) [选项卡控件:(QTabWidget)](src/containers/TabWidget.py) ## [信号与槽](src/SignalSlot/) -[入门示例](src/SignalSlot/SignalSlotDemo.py) +[入门示例](src/SignalSlot/SignalSlotDemo.py) [信号与槽自动连接](src/SignalSlot/AutoSignalSlot.py) [自定义信号](src/SignalSlot/CustomSignal.py) [Lambda表达式](src/SignalSlot/LambdaSlotArg.py) [为类添加多个信号](src/SignalSlot/MultiSignal.py) [信号槽N对N连接与断开](src/SignalSlot/NNSignal.py) -[Override(覆盖)槽函数](src/SignalSlot/OverrideSlot.py) -[使用Partial对象为槽函数传递参数](src/SignalSlot/PartialSlotArg.py) +[Override(覆盖)槽函数](src/SignalSlot/OverrideSlot.py) +[使用Partial对象为槽函数传递参数](src/SignalSlot/PartialSlotArg.py) [窗口信号](src/SignalSlot/WinSignal.py) ## 多线程 -[让程序自动关闭](src/multithread/AutoCloseWindow.py) +[让程序自动关闭](src/multithread/AutoCloseWindow.py) [计数器](src/multithread/Counter.py) [动态显示时间](src/multithread/ShowTime.py) [多线程更新UI数据](src/SignalSlot/ThreadUpdateUI.py) From 9ec7e57dd3c10d78f4a8f1f21401d1ffb6a26107 Mon Sep 17 00:00:00 2001 From: zlhcsm <522496405@qq.com> Date: Mon, 30 Dec 2019 11:04:38 +0800 Subject: [PATCH 10/15] Create mixlayout.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 混合布局 --- src/layout/mixlayout.py | 58 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 src/layout/mixlayout.py diff --git a/src/layout/mixlayout.py b/src/layout/mixlayout.py new file mode 100644 index 0000000..c588686 --- /dev/null +++ b/src/layout/mixlayout.py @@ -0,0 +1,58 @@ +from PyQt5.QtWidgets import QGridLayout, QVBoxLayout, QApplication, QHBoxLayout, QWidget, QPushButton, QLineEdit +from PyQt5 import QtWidgets +import sys + +class RadioButton(QtWidgets.QWidget): + def __init__(self): + QtWidgets.QWidget.__init__(self) + self.setUI() + + def setUI(self): + # button + self.btn1 = QPushButton('button1') + self.btn2 = QPushButton('button2') + self.btn3 = QPushButton('button3') + self.btn4 = QPushButton('button4') + + # 新建一个栅格布局,并且将按钮添加进去 + self.grid = QGridLayout() + self.grid.addWidget(self.btn1, 0, 0) + self.grid.addWidget(self.btn2, 0, 1) + self.grid.addWidget(self.btn3, 1, 0) + self.grid.addWidget(self.btn4, 1, 1) + + # 新建左边容器 + self.widget1 = QWidget() + self.widget1.setStyleSheet("QWidget{border: 1px solid #FF0000;}") # 设置样式 + self.widget1.setLayout(self.grid) + + # 输入行 + self.lineEdit1 = QLineEdit('lineEdit1') + self.lineEdit2 = QLineEdit('lineEdit2') + self.lineEdit3 = QLineEdit('lineEdit3') + self.lineEdit4 = QLineEdit('lineEdit4') + + # 新建一个垂直布局,并且将输入行添加进去 + self.vbox = QVBoxLayout() + self.vbox.addWidget(self.lineEdit1) + self.vbox.addWidget(self.lineEdit2) + self.vbox.addWidget(self.lineEdit3) + self.vbox.addWidget(self.lineEdit4) + + # 新建右边容器 + self.widget2 = QWidget() + self.widget2.setStyleSheet("QWidget{border: 1px solid #FF0000;}") # 设置样式 + self.widget2.setLayout(self.vbox) + + '''layout''' + self.hbox = QHBoxLayout() + self.hbox.addWidget(self.widget1) + self.hbox.addWidget(self.widget2) + self.setLayout(self.hbox) + + +if __name__ == "__main__": + app = QApplication(sys.argv) + qb = RadioButton() + qb.show() + sys.exit(app.exec_()) From 1b81df713e2839d99711fa1217d578d7e98d7cf5 Mon Sep 17 00:00:00 2001 From: zlhcsm <522496405@qq.com> Date: Mon, 30 Dec 2019 11:05:18 +0800 Subject: [PATCH 11/15] Rename mixlayout.py to MixLayout.py --- src/layout/{mixlayout.py => MixLayout.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/layout/{mixlayout.py => MixLayout.py} (100%) diff --git a/src/layout/mixlayout.py b/src/layout/MixLayout.py similarity index 100% rename from src/layout/mixlayout.py rename to src/layout/MixLayout.py From 99fec5659e3fde442ed4e2744f61afc8d65f07b0 Mon Sep 17 00:00:00 2001 From: zlhcsm <522496405@qq.com> Date: Mon, 30 Dec 2019 11:06:08 +0800 Subject: [PATCH 12/15] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f3d612d..06dfa5f 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ [让按钮永远在窗口右下角](src/layout/RightBottomButton.py) [拖动控件之间的边界(QSplitter)](src/layout/Splitter.py) [设置伸缩量(addStretch)](src/layout/Stretch.py) - +[混合布局/嵌套布局](src/layout/MixLayout.py) From 7bfebfe13c17a433244f580115576e255410fc92 Mon Sep 17 00:00:00 2001 From: zlhcsm <522496405@qq.com> Date: Mon, 30 Dec 2019 12:23:58 +0800 Subject: [PATCH 13/15] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 06dfa5f..a9da565 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,7 @@ [.ui文件转.py文件](src/designer/将.ui文件转换为.py文件.txt) ## 布局与设计 +> 可参考其他链接[Pyqt5之布局管理](https://www.cnblogs.com/laizhenghong2012/p/10040798.html) [绝对布局](src/layout/AbsoluteLayout.py) [栅格布局](src/layout/Calc.py) [表单布局(QFormLayout)](src/layout/FormLayout.py) @@ -17,6 +18,7 @@ [拖动控件之间的边界(QSplitter)](src/layout/Splitter.py) [设置伸缩量(addStretch)](src/layout/Stretch.py) [混合布局/嵌套布局](src/layout/MixLayout.py) +[混合布局/嵌套布局1](src/layout/MixLayout1.py) From d343d6407202a720ec037fe664e1e2a03fdcbf82 Mon Sep 17 00:00:00 2001 From: zlhcsm <522496405@qq.com> Date: Mon, 30 Dec 2019 12:24:37 +0800 Subject: [PATCH 14/15] Create MixLayout1.py --- src/layout/MixLayout1.py | 46 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/layout/MixLayout1.py diff --git a/src/layout/MixLayout1.py b/src/layout/MixLayout1.py new file mode 100644 index 0000000..87cf04f --- /dev/null +++ b/src/layout/MixLayout1.py @@ -0,0 +1,46 @@ +import sys +from PyQt5.QtWidgets import QApplication, QWidget, QHBoxLayout, QVBoxLayout, \ + QGridLayout, QFormLayout, QPushButton + +class Window(QWidget): + def __init__(self): + super().__init__() + self.setWindowTitle('嵌套布局') + self.resize(700, 200) + + # 全局控件(注意参数self),用于承载全局布局 + wwg = QWidget(self) + + # 全局布局 + wl = QHBoxLayout(wwg) + hlayout = QHBoxLayout() + vlayout = QVBoxLayout() + glayout = QGridLayout() + flayout = QFormLayout() + + # 为局部布局添加控件 + hlayout.addWidget(QPushButton(str(1))) + hlayout.addWidget(QPushButton(str(2))) + vlayout.addWidget(QPushButton(str(3))) + vlayout.addWidget(QPushButton(str(4))) + glayout.addWidget(QPushButton(str(5)), 0, 0) + glayout.addWidget(QPushButton(str(6)), 0, 1) + glayout.addWidget(QPushButton(str(7)), 1, 0) + glayout.addWidget(QPushButton(str(8)), 1, 1) + flayout.addWidget(QPushButton(str(9))) + flayout.addWidget(QPushButton(str(10))) + flayout.addWidget(QPushButton(str(11))) + flayout.addWidget(QPushButton(str(12))) + + # 在布局布局wl中添加局部布局 + wl.addLayout(hlayout) + wl.addLayout(vlayout) + wl.addLayout(glayout) + wl.addLayout(flayout) + + self.show() + +if __name__ == '__main__': + app = QApplication(sys.argv) + w = Window() + sys.exit(app.exec_()) From cb50a02273518a5d8e9c3e9a9b6494f0f45d118f Mon Sep 17 00:00:00 2001 From: zlhcsm <522496405@qq.com> Date: Mon, 30 Dec 2019 12:42:52 +0800 Subject: [PATCH 15/15] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a9da565..86944a0 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ [让按钮永远在窗口右下角](src/layout/RightBottomButton.py) [拖动控件之间的边界(QSplitter)](src/layout/Splitter.py) [设置伸缩量(addStretch)](src/layout/Stretch.py) -[混合布局/嵌套布局](src/layout/MixLayout.py) +[混合布局/嵌套布局](src/layout/MixLayout.py) [混合布局/嵌套布局1](src/layout/MixLayout1.py)