点击上方蓝字关注我哦
前情提要
上一篇是说了一下框架,主要为了说明怎么去实现将功能展示处理,今天记录一下一些具体功能的一下代码
pythonfrom PyQt6.QtCore import QObject, pyqtSignal, pyqtSlot
class MyClass(QObject):
my_signal = pyqtSignal()
@pyqtSlot()
def my_slot(self):
print("This is my slot")
def some_method(self):
# Emit the signal
self.my_signal.emit()
# Create an instance of MyClass
my_class = MyClass()
# Connect the signal to the slot
my_class.my_signal.connect(my_class.my_slot)
# Call some_method() to emit the signal
my_class.some_method() # This will print "This is my s
pythonimport sys
from PyQt6.QtWidgets import QApplication, QLabel, QPushButton
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.label = QLabel("Hello PyQt6!", self)
self.button = QPushButton("Click me", self)
self.button.clicked.connect(self.on_button_clicked)
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('Event, signal and slot example')
self.show()
def on_button_clicked(self):
self.label.setText("Button was clicked!")
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
pythonimport sys
from PyQt6.QtWidgets import QApplication, QTableWidget, QTableWidgetItem
def main():
app = QApplication(sys.argv)
# 创建一个 3 行 3 列的表格
table = QTableWidget(3, 3)
# 向表格中添加数据
item = QTableWidgetItem("Item 1")
table.setItem(0, 0, item)
item = QTableWidgetItem("Item 2")
table.setItem(0, 1, item)
item = QTableWidgetItem("Item 3")
table.setItem(0, 2, item)
item = QTableWidgetItem("Item 4")
table.setItem(1, 0, item)
item = QTableWidgetItem("Item 5")
table.setItem(1, 1, item)
item = QTableWidgetItem("Item 6")
table.setItem(1, 2, item)
item = QTableWidgetItem("Item 7")
table.setItem(2, 0, item)
item = QTableWidgetItem("Item 8")
table.setItem(2, 1, item)
item = QTableWidgetItem("Item 9")
table.setItem(2, 2, item)
# 显示表格
table.show()
sys.exit(app.exec_())
if __name__ == "__main__":
main()
pythonimport sys
from PyQt6.QtWidgets import QApplication, QTableWidget, QTableWidgetItem
def main():
app = QApplication(sys.argv)
# 创建一个 3 行 3 列的表格
table = QTableWidget(3, 3)
# 向表格中添加数据
item = QTableWidgetItem("Item 1")
table.setItem(0, 0, item)
item = QTableWidgetItem("Item 2")
table.setItem(0, 1, item)
item = QTableWidgetItem("Item 3")
table.setItem(0, 2, item)
item = QTableWidgetItem("Item 4")
table.setItem(1, 0, item)
item = QTableWidgetItem("Item 5")
table.setItem(1, 1, item)
item = QTableWidgetItem("Item 6")
table.setItem(1, 2, item)
item = QTableWidgetItem("Item 7")
table.setItem(2, 0, item)
item = QTableWidgetItem("Item 8")
table.setItem(2, 1, item)
item = QTableWidgetItem("Item 9")
table.setItem(2, 2, item)
# 显示表格
table.show()
sys.exit(app.exec_())
if __name__ == "__main__":
main()
pythonimport sys
from PyQt6.QtWidgets import QApplication, QProgressBar
def main():
app = QApplication(sys.argv)
# 创建一个进度条
progress_bar = QProgressBar()
# 设置进度条的最小值和最大值
progress_bar.setMinimum(0)
progress_bar.setMaximum(100)
# 将进度条设置为 50%
progress_bar.setValue(50)
# 显示进度条
progress_bar.show()
sys.exit(app.exec_())
if __name__ == "__main__":
main()
在这个示例中,我们创建了一个 QProgressBar
,设置了其最小值和最大值,并将初始值设置为 50%。然后,我们调用 show()
方法显示进度条。你可以根据需要更新进度条的值,例如在执行一个任务时显示进度。
pythonimport sys
from PyQt6.QtCore import Qt
from PyQt6.QtCharts import QChartView, QLineSeries
from PyQt6.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget
def main():
app = QApplication(sys.argv)
# 创建主窗口
window = QMainWindow()
window.setWindowTitle("Line Chart Example")
# 创建一个包含图表视图的子窗口
chart_widget = QWidget()
chart_view = QChartView()
# 创建一个折线系列
series = QLineSeries()
# 向系列中添加数据点
series.append(0, 10)
series.append(1, 20)
series.append(2, 30)
series.append(3, 25)
series.append(4, 15)
# 将系列添加到图表中
chart_view.chart().addSeries(series)
# 设置图表的标题和轴标签
chart_view.chart().setTitle("Line Chart Example")
chart_view.chart().setAxisTitle(Qt.YAxis, "Value")
chart_view.chart().setAxisTitle(Qt.XAxis, "Index")
# 设置图表视图的缩放和滚动
chart_view.setRenderHint(QPainter.RenderHint.Antialiasing)
chart_view.setInteractive(True)
# 将图表视图添加到子窗口中
layout = QVBoxLayout()
layout.addWidget(chart_view)
chart_widget.setLayout(layout)
# 将子窗口添加到主窗口中
window.setCentralWidget(chart_widget)
# 显示主窗口
window.show()
sys.exit(app.exec_())
if __name__ == "__main__":
main()
pythonimport sys
from PyQt6.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget
from PyQt6.QtGui import QGuiApplication
from PyQt6.QtPdf import QPdfViewer
def main():
app = QApplication(sys.argv)
# 创建主窗口
window = QMainWindow()
window.setWindowTitle("Online PDF Viewer Example")
# 创建一个子窗口来显示 PDF
pdf_widget = QWidget()
pdf_viewer = QPdfViewer()
# 设置在线 PDF 文件的 URL
pdf_url = "https://example.com/path/to/your/pdf/file.pdf"
pdf_viewer.setFileName(pdf_url)
# 将 PDF 视图添加到子窗口中
layout = QVBoxLayout()
layout.addWidget(pdf_viewer)
pdf_widget.setLayout(layout)
# 将子窗口添加到主窗口中
window.setCentralWidget(pdf_widget)
# 显示主窗口
window.show()
sys.exit(app.exec_())
if __name__ == "__main__":
main()
pythonimport sys
from PyQt6.QtWidgets import QApplication, QTableWidget, QTableWidgetItem
def main():
app = QApplication(sys.argv)
# 创建主窗口
window = QTableWidget(3, 3) # 3 行 3 列的表格
# 启用复选框
window.setEditTriggers(QTableWidget.NoEditTriggers)
window.setShowGrid(False)
# 添加表格项
for row in range(3):
for col in range(3):
item = QTableWidgetItem()
item.setCheckable(True)
window.setItem(row, col, item)
# 显示主窗口
window.show()
sys.exit(app.exec_())
if __name__ == "__main__":
main()
在这个示例中,我们创建了一个 QTableWidget
作为主窗口,并设置了 3 行 3 列的表格。我们通过将 checkable
属性设置为 True
来为每个 QTableWidgetItem
启用复选框。最后,我们显示主窗口。
注意:在这个示例中,我们禁用了表格的编辑功能(通过设置 setEditTriggers
),并隐藏了网格线(通过设置 setShowGrid
)。这些设置可以使复选框更加明显。你可以根据需要调整这些设置。
在 PyQt6 中,你可以使用 QNetworkAccessManager
和 QPrinter
类来下载在线 PDF 文件并将其导出到本地。以下是一个简单的示例:
pythonimport sys
from PyQt6.QtWidgets import QApplication, QLabel, QPushButton
from PyQt6.QtCore import Qt, QCoreApplication, QUrl
from PyQt6.QtNetwork import QNetworkAccessManager, QNetworkRequest, QNetworkReply
from PyQt6.QtPrintSupport import QPrinter
class PdfDownloader(QNetworkAccessManager):
def __init__(self, parent=None):
super().__init__(parent)
@staticmethod
def download_pdf(url, output_file):
network_manager = PdfDownloader()
request = QNetworkRequest(QUrl(url))
request.setCache(QCoreApplication.instance().cache)
request.setProxy(QCoreApplication.instance().proxy)
reply = network_manager.get(request)
if reply.error() == QNetworkReply.NoError:
with open(output_file, "wb") as f:
f.write(reply.readAll())
print(f"PDF file saved to: {output_file}")
else:
print(f"Error downloading PDF file: {reply.errorString()}")
if __name__ == "__main__":
app = QApplication(sys.argv)
# 设置网络访问管理器
network_manager = PdfDownloader()
# 设置要下载的在线 PDF 文件 URL
pdf_url = "https://example.com/example.pdf"
# 设置要保存的本地文件路径
output_file = "example.pdf"
# 下载 PDF 文件
PdfDownloader.download_pdf(pdf_url, output_file)
sys.exit(app.exec_())
在这个示例中,我们首先创建了一个 PdfDownloader
类,它继承自 QNetworkAccessManager
。我们在这个类中定义了一个静态方法 download_pdf
,它接受一个 URL 和一个输出文件路径作为参数。
在 download_pdf
方法中,我们创建了一个 QNetworkAccessManager
对象,并使用 QNetworkRequest
类来请求指定的 PDF 文件。我们还设置了缓存和代理,以便在网络访问过程中使用。
接下来,我们使用 QNetworkAccessManager.get
方法下载 PDF 文件,并将响应存储在 QNetworkReply
对象中。如果下载过程中没有错误,我们将使用 QNetworkReply.readAll
方法读取响应数据,并将其写入本地文件。最后,我们打印出已保存的 PDF 文件路径。
如果下载过程中出现错误,我们将打印出错误信息。
扫码关注后台回复“安全”
获取资料
原文始发于微信公众号(SQ安全渗透):记录一下pyqt6的一些功能操作的代码
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论