做网站如何计算工资,wordpress stheme,网站排名优化是怎么做的,海外营销推广快速掌握Pyqt5的三种主窗口 快速掌握Pyqt5的2种弹簧 快速掌握Pyqt5的5种布局 快速弄懂Pyqt5的5种项目视图#xff08;Item View#xff09; 快速弄懂Pyqt5的4种项目部件#xff08;Item Widget#xff09; 快速掌握Pyqt5的6种按钮 快速掌握Pyqt5的20种输入控件#xff08;…快速掌握Pyqt5的三种主窗口 快速掌握Pyqt5的2种弹簧 快速掌握Pyqt5的5种布局 快速弄懂Pyqt5的5种项目视图Item View 快速弄懂Pyqt5的4种项目部件Item Widget 快速掌握Pyqt5的6种按钮 快速掌握Pyqt5的20种输入控件Input Widgets 待续。。。
下面将提供一些简单的例子展示PyQt5中不同种类容器的基本用法。
1. Group Box (QGroupBox)
使用QGroupBox来分组相关的控件如单选按钮。
from PyQt5.QtWidgets import QApplication, QWidget, QGroupBox, QRadioButton, QVBoxLayoutapp QApplication([])
window QWidget()groupBox QGroupBox(Options)
radio1 QRadioButton(Option 1)
radio2 QRadioButton(Option 2)vbox QVBoxLayout()
vbox.addWidget(radio1)
vbox.addWidget(radio2)
groupBox.setLayout(vbox)windowLayout QVBoxLayout(window)
windowLayout.addWidget(groupBox)
window.show()
app.exec_()2. Scroll Area (QScrollArea)
创建一个QScrollArea在其中放置一个大控件。
from PyQt5.QtWidgets import QApplication, QWidget, QScrollArea, QLabel, QVBoxLayoutapp QApplication([])
window QWidget()scrollArea QScrollArea()
content QLabel(A lot of content... * 100)
scrollArea.setWidget(content)windowLayout QVBoxLayout(window)
windowLayout.addWidget(scrollArea)
window.show()
app.exec_()3. Tool Box (QToolBox)
使用QToolBox来创建带有折叠面板的容器。
from PyQt5.QtWidgets import QApplication, QWidget, QToolBox, QLabelapp QApplication([])
window QWidget()toolBox QToolBox()
toolBox.addItem(QLabel(Content of Panel 1), Panel 1)
toolBox.addItem(QLabel(Content of Panel 2), Panel 2)windowLayout QVBoxLayout(window)
windowLayout.addWidget(toolBox)
window.show()
app.exec_()4. Tab Widget (QTabWidget)
创建一个QTabWidget其中包含多个标签页。
from PyQt5.QtWidgets import QApplication, QWidget, QTabWidget, QLabel, QVBoxLayoutapp QApplication([])
window QWidget()tabWidget QTabWidget()
tabWidget.addTab(QLabel(Content of Tab 1), Tab 1)
tabWidget.addTab(QLabel(Content of Tab 2), Tab 2)windowLayout QVBoxLayout(window)
windowLayout.addWidget(tabWidget)
window.show()
app.exec_()5. Stacked Widget (QStackedWidget)
使用QStackedWidget来创建一个堆叠的控件容器。
from PyQt5.QtWidgets import QApplication, QWidget, QStackedWidget, QPushButton, QVBoxLayoutdef show_next_widget():index (stackedWidget.currentIndex() 1) % stackedWidget.count()stackedWidget.setCurrentIndex(index)app QApplication([])
window QWidget()stackedWidget QStackedWidget()
stackedWidget.addWidget(QLabel(Content of Widget 1))
stackedWidget.addWidget(QLabel(Content of Widget 2))button QPushButton(Next)
button.clicked.connect(show_next_widget)windowLayout QVBoxLayout(window)
windowLayout.addWidget(stackedWidget)
windowLayout.addWidget(button)
window.show()
app.exec_()这些例子展示了如何使用PyQt5中的不同容器控件。每个容器都有其特定的用途合理使用这些容器可以使你的GUI应用程序结构更清晰功能更丰富。
当然让我们继续探索PyQt5中其他的容器控件
6. Frame (QFrame)
QFrame 可用于创建一个简单的容器常常用于绘制边框和分隔内容。
from PyQt5.QtWidgets import QApplication, QFrame, QVBoxLayout, QLabelapp QApplication([])
frame QFrame()
frame.setFrameShape(QFrame.StyledPanel)label QLabel(Content inside a Frame)
layout QVBoxLayout()
layout.addWidget(label)
frame.setLayout(layout)frame.show()
app.exec_()7. Widget (QWidget)
QWidget 是PyQt5中所有用户界面对象的基类也可以作为一个通用的容器。
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButtonapp QApplication([])
widget QWidget()button1 QPushButton(Button 1)
button2 QPushButton(Button 2)layout QVBoxLayout()
layout.addWidget(button1)
layout.addWidget(button2)
widget.setLayout(layout)widget.show()
app.exec_()8. MDI Area (QMdiArea)
QMdiArea 提供了一个多文档接口MDI允许管理多个子窗口。
from PyQt5.QtWidgets import QApplication, QMdiArea, QMdiSubWindow, QTextEditapp QApplication([])
mdiArea QMdiArea()subWindow1 QMdiSubWindow()
subWindow1.setWidget(QTextEdit(Subwindow 1))
mdiArea.addSubWindow(subWindow1)subWindow2 QMdiSubWindow()
subWindow2.setWidget(QTextEdit(Subwindow 2))
mdiArea.addSubWindow(subWindow2)mdiArea.show()
app.exec_()9. Dock Widget (QDockWidget)
QDockWidget 提供了可停靠的控件这些控件可以被移动和重新停靠在主窗口的不同位置。
from PyQt5.QtWidgets import QApplication, QMainWindow, QDockWidget, QTextEditapp QApplication([])
mainWindow QMainWindow()dockWidget QDockWidget(Dockable, mainWindow)
dockWidget.setWidget(QTextEdit(Docked Widget))mainWindow.addDockWidget(Qt.LeftDockWidgetArea, dockWidget)
mainWindow.show()
app.exec_()10. QAxWidget
QAxWidget 是 PyQt5 中用于嵌入 ActiveX 控件的容器。ActiveX 是微软的一种软件框架用于在不同的应用程序之间共享信息和功能。QAxWidget 使得 PyQt 应用能够集成那些仅在 Windows 系统上可用的 ActiveX 控件例如 Microsoft Office 组件如 Word 或 Excel或其他第三方 ActiveX 控件。
基本使用
要使用 QAxWidget首先需要确保你的环境中安装了 PyQt5 和 PyQt5-tools。QAxWidget 仅在 Windows 系统上可用。
以下是一个使用 QAxWidget 来嵌入 Internet Explorer 浏览器作为控件的简单示例
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5 import QtAxContainerapp QApplication(sys.argv)window QMainWindow()
window.setWindowTitle(QAxWidget Example)# 创建 QAxWidget
axWidget QtAxContainer.QAxWidget(window)
axWidget.setControl(Shell.Explorer.2) # 使用 Internet Explorer 控件# 载入一个网页
axWidget.dynamicCall(Navigate(const QString), http://www.google.com)window.setCentralWidget(axWidget)
window.resize(800, 600)
window.show()sys.exit(app.exec_())注意事项 兼容性QAxWidget 仅在 Windows 上有效因为 ActiveX 是微软的技术。 安全性ActiveX 控件可能存在安全风险因为它们具有运行时的高权限。 调试集成 ActiveX 控件可能需要处理复杂的兼容性和配置问题调试可能比较困难。 依赖性使用 QAxWidget 依赖于控件的可用性确保目标机器上安装了相应的ActiveX控件。
QAxWidget 在需要与 Windows 平台更紧密集成时非常有用尤其是在需要使用专有的 Windows 功能或组件时。然而它的使用应谨慎进行以确保应用的兼容性和安全性。