網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
PyQt是Qt框架的Python語(yǔ)言實(shí)現(xiàn),是最強(qiáng)大的GUI庫(kù)之一。PyQt提供了一個(gè)設(shè)計(jì)良好的窗口控件集合,具有更方便的操作性。學(xué)過VB的同學(xué)會(huì)知道,相比與VB的使用,在界面設(shè)計(jì)上元素更豐富。
本文就是基于PyQt5完成的pdf轉(zhuǎn)word功能,先看界面:
一、界面PdfZ.ui可參考之前的文章如何實(shí)現(xiàn),程序代碼如下:
from PyQt5 import QtCore, QtGui, QtWidgets
import base64
import os
from return_png import img as retu # 引入img變量,賦別名為pdf_cf
class Ui_PdfZ(object):
def setupUi(self, PdfZ):
tmp = open('return.png', 'wb') # 創(chuàng)建臨時(shí)的文件
tmp.write(base64.b64decode(retu)) # 把這個(gè)one圖片解碼出來,寫入文件中去。
tmp.close()
PdfZ.setObjectName("PdfZ")
PdfZ.resize(1400, 814)
PdfZ.setMinimumSize(QtCore.QSize(1400, 814))
PdfZ.setMaximumSize(QtCore.QSize(1400, 814))
palette = QtGui.QPalette()
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Base, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Window, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Base, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Window, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Base, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Window, brush)
PdfZ.setPalette(palette)
self.Reback = QtWidgets.QToolButton(PdfZ)
self.Reback.setGeometry(QtCore.QRect(10, 10, 51, 41))
palette = QtGui.QPalette()
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Button, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.ToolTipBase, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Button, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.ToolTipBase, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Button, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.ToolTipBase, brush)
self.Reback.setPalette(palette)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap("return.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.Reback.setIcon(icon)
self.Reback.setIconSize(QtCore.QSize(100, 100))
self.Reback.setAutoRaise(True)
self.Reback.setObjectName("Reback")
self.label = QtWidgets.QLabel(PdfZ)
self.label.setGeometry(QtCore.QRect(88, 8, 171, 41))
font = QtGui.QFont()
font.setFamily("微軟雅黑")
font.setPointSize(16)
font.setBold(True)
font.setWeight(75)
self.label.setFont(font)
self.label.setObjectName("label")
self.frame = QtWidgets.QFrame(PdfZ)
self.frame.setGeometry(QtCore.QRect(20, 60, 1351, 161))
palette = QtGui.QPalette()
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Base, brush)
brush = QtGui.QBrush(QtGui.QColor(245, 255, 250))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Window, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Base, brush)
brush = QtGui.QBrush(QtGui.QColor(245, 255, 250))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Window, brush)
brush = QtGui.QBrush(QtGui.QColor(245, 255, 250))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Base, brush)
brush = QtGui.QBrush(QtGui.QColor(245, 255, 250))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Window, brush)
self.frame.setPalette(palette)
self.frame.setAutoFillBackground(True)
self.frame.setFrameShape(QtWidgets.QFrame.Box)
self.frame.setFrameShadow(QtWidgets.QFrame.Plain)
self.frame.setLineWidth(1)
self.frame.setMidLineWidth(0)
self.frame.setObjectName("frame")
self.scwd = QtWidgets.QPushButton(self.frame)
self.scwd.setGeometry(QtCore.QRect(570, 30, 191, 61))
palette = QtGui.QPalette()
brush = QtGui.QBrush(QtGui.QColor(0, 217, 159))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Button, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Text, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.ButtonText, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255, 128))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.PlaceholderText, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 217, 159))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Button, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Text, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.ButtonText, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255, 128))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.PlaceholderText, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 217, 159))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Button, brush)
brush = QtGui.QBrush(QtGui.QColor(120, 120, 120))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Text, brush)
brush = QtGui.QBrush(QtGui.QColor(120, 120, 120))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.ButtonText, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0, 128))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.PlaceholderText, brush)
self.scwd.setPalette(palette)
font = QtGui.QFont()
font.setFamily("微軟雅黑")
font.setPointSize(16)
font.setBold(True)
font.setWeight(75)
self.scwd.setFont(font)
self.scwd.setAutoFillBackground(True)
self.scwd.setAutoDefault(False)
self.scwd.setDefault(False)
self.scwd.setFlat(True)
self.scwd.setObjectName("scwd")
self.label_2 = QtWidgets.QLabel(self.frame)
self.label_2.setGeometry(QtCore.QRect(620, 100, 131, 21))
font = QtGui.QFont()
font.setFamily("微軟雅黑")
self.label_2.setFont(font)
self.label_2.setObjectName("label_2")
self.frame_2 = QtWidgets.QFrame(PdfZ)
self.frame_2.setGeometry(QtCore.QRect(1050, 280, 321, 301))
palette = QtGui.QPalette()
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Base, brush)
brush = QtGui.QBrush(QtGui.QColor(245, 255, 250))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Window, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Base, brush)
brush = QtGui.QBrush(QtGui.QColor(245, 255, 250))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Window, brush)
brush = QtGui.QBrush(QtGui.QColor(245, 255, 250))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Base, brush)
brush = QtGui.QBrush(QtGui.QColor(245, 255, 250))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Window, brush)
self.frame_2.setPalette(palette)
self.frame_2.setAutoFillBackground(True)
self.frame_2.setFrameShape(QtWidgets.QFrame.NoFrame)
self.frame_2.setFrameShadow(QtWidgets.QFrame.Plain)
self.frame_2.setLineWidth(1)
self.frame_2.setMidLineWidth(0)
self.frame_2.setObjectName("frame_2")
self.label_3 = QtWidgets.QLabel(self.frame_2)
self.label_3.setGeometry(QtCore.QRect(20, 20, 191, 31))
font = QtGui.QFont()
font.setFamily("微軟雅黑")
font.setPointSize(14)
font.setBold(False)
font.setWeight(50)
self.label_3.setFont(font)
self.label_3.setObjectName("label_3")
self.xzwd = QtWidgets.QPushButton(self.frame_2)
self.xzwd.setGeometry(QtCore.QRect(30, 200, 271, 61))
palette = QtGui.QPalette()
brush = QtGui.QBrush(QtGui.QColor(0, 217, 159))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Button, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Text, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.ButtonText, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255, 128))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.PlaceholderText, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 217, 159))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Button, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Text, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.ButtonText, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255, 128))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.PlaceholderText, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 217, 159))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Button, brush)
brush = QtGui.QBrush(QtGui.QColor(120, 120, 120))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Text, brush)
brush = QtGui.QBrush(QtGui.QColor(120, 120, 120))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.ButtonText, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0, 128))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.PlaceholderText, brush)
self.xzwd.setPalette(palette)
font = QtGui.QFont()
font.setFamily("微軟雅黑")
font.setPointSize(14)
font.setBold(True)
font.setWeight(75)
self.xzwd.setFont(font)
self.xzwd.setAutoFillBackground(True)
self.xzwd.setAutoDefault(False)
self.xzwd.setDefault(False)
self.xzwd.setFlat(True)
self.xzwd.setObjectName("xzwd")
self.label_4 = QtWidgets.QLabel(self.frame_2)
self.label_4.setGeometry(QtCore.QRect(30, 70, 141, 21))
font = QtGui.QFont()
font.setFamily("微軟雅黑")
self.label_4.setFont(font)
self.label_4.setObjectName("label_4")
self.textEdit = QtWidgets.QTextEdit(self.frame_2)
self.textEdit.setGeometry(QtCore.QRect(60, 110, 61, 41))
font = QtGui.QFont()
font.setFamily("微軟雅黑")
font.setPointSize(12)
font.setBold(True)
font.setWeight(75)
self.textEdit.setFont(font)
self.textEdit.setObjectName("textEdit")
self.label_5 = QtWidgets.QLabel(self.frame_2)
self.label_5.setGeometry(QtCore.QRect(150, 120, 31, 21))
font = QtGui.QFont()
font.setFamily("微軟雅黑")
self.label_5.setFont(font)
self.label_5.setObjectName("label_5")
self.textEdit_2 = QtWidgets.QTextEdit(self.frame_2)
self.textEdit_2.setGeometry(QtCore.QRect(200, 110, 61, 41))
font = QtGui.QFont()
font.setFamily("微軟雅黑")
font.setPointSize(12)
font.setBold(True)
font.setWeight(75)
self.textEdit_2.setFont(font)
self.textEdit_2.setObjectName("textEdit_2")
self.label_7 = QtWidgets.QLabel(PdfZ)
self.label_7.setGeometry(QtCore.QRect(450, 250, 71, 21))
font = QtGui.QFont()
font.setFamily("微軟雅黑")
self.label_7.setFont(font)
self.label_7.setObjectName("label_7")
self.label_6 = QtWidgets.QLabel(PdfZ)
self.label_6.setGeometry(QtCore.QRect(270, 290, 461, 511))
self.label_6.setFrameShape(QtWidgets.QFrame.Box)
self.label_6.setFrameShadow(QtWidgets.QFrame.Plain)
self.label_6.setLineWidth(1)
self.label_6.setMidLineWidth(0)
self.label_6.setText("")
self.label_6.setObjectName("label_6")
self.retranslateUi(PdfZ)
QtCore.QMetaObject.connectSlotsByName(PdfZ)
os.remove("return.png")
def retranslateUi(self, PdfZ):
_translate = QtCore.QCoreApplication.translate
PdfZ.setWindowTitle(_translate("PdfZ", "PDFZWORD"))
self.Reback.setText(_translate("PdfZ", "..."))
self.label.setText(_translate("PdfZ", "PDFZWORD"))
self.scwd.setText(_translate("PdfZ", "+ 上傳文檔"))
self.label_2.setText(_translate("PdfZ", "上傳文檔至此"))
self.label_3.setText(_translate("PdfZ", "操作"))
self.xzwd.setText(_translate("PdfZ", "開始轉(zhuǎn)換"))
self.label_4.setText(_translate("PdfZ", "頁(yè)碼選擇(請(qǐng)勿輸0):"))
self.label_5.setText(_translate("PdfZ", "到"))
self.label_7.setText(_translate("PdfZ", "PDF預(yù)覽"))
二、main.py實(shí)現(xiàn)主要功能程序如下:
class pdwwindow(QtWidgets.QWidget,Ui_PdfZ):
? ? def __init__(self):
? ? ? ? super(pdwwindow, self).__init__()
? ? ? ? self.setupUi(self)
? ? def re_back(self):
? ? ? ? self.close()
? ? def sctp(self):
? ? ? ? fileName, fileType = QtWidgets.QFileDialog.getOpenFileName(self, "選取文件", os.getcwd(),"自定義(*.pdf;*);;All Files(*)")
? ? ? ? self.f = str(fileName)
? ? ? ? self.p, self.s =self.f.split(".")
? ? ? ? try:
? ? ? ? ? if self.s == "pdf":
? ? ? ? ? ?# 打開文件
? ? ? ? ? ?doc = fitz.open(self.f)
? ? ? ? ? ?# 讀取一頁(yè) 0代表第1頁(yè)
? ? ? ? ? ?page_one = doc.loadPage(0)
? ? ? ? ? ?# 將第一頁(yè)轉(zhuǎn)換為Pixmap
? ? ? ? ? ?page_pixmap = page_one.getPixmap()
? ? ? ? ? ?# 將Pixmap轉(zhuǎn)換為QImage
? ? ? ? ? ?image_format = QImage.Format_RGBA8888 if page_pixmap.alpha else QImage.Format_RGB888
? ? ? ? ? ?page_image = QImage(page_pixmap.samples, page_pixmap.width,page_pixmap.height, page_pixmap.stride, image_format)
? ? ? ? ? ?# width = page_image.width()
? ? ? ? ? ?# height = page_image.height()
? ? ? ? ? ?# QImage 轉(zhuǎn)為QPixmap
? ? ? ? ? ?pix = QPixmap.fromImage(page_image)
? ? ? ? ? ? # 設(shè)置圖片大小自適應(yīng)標(biāo)簽
? ? ? ? ? ?self.label_6.setScaledContents(True)
? ? ? ? ? ? # 給標(biāo)簽設(shè)置圖像
? ? ? ? ? ?self.label_6.setPixmap(pix)
? ? ? ? ? else:
? ? ? ? ? ?msg_box = QMessageBox(QMessageBox.Warning,"錯(cuò)誤", "文件不是 pdf 文件,請(qǐng)重新選擇!")
? ? ? ? ? ?msg_box.exec_()
? ? ? ? except Exception as e:
? ? ? ? ? pass
? ? def xzwj(self):
? ? ? ? docx_file = "{}_pdfZword.docx".format(self.p)
? ? ? ? str1 = self.textEdit.toPlainText()
? ? ? ? num1 = int(str1)
? ? ? ? str2 = self.textEdit_2.toPlainText()
? ? ? ? num2 = int(str2)
? ? ? ? if num1==num2:
? ? ? ? ? ? num1=num1-1
? ? ? ? cv = Converter(self.f)
? ? ? ? cv.convert(docx_file, start=num1, end=num2)
? ? ? ? cv.close()
? ? ? ? root = tkinter.Tk()
? ? ? ? root.withdraw()
? ? ? ? tkinter.messagebox.showinfo("提示", "成功下載到源文件所在文件夾")
說明如下:
(1) def sctp(self): 其中的sctp為按鈕的objectName屬性名字;def xzwj(self):其中的xzwj為按鈕的objectName屬性名字;
(2) 可通過點(diǎn)擊按鈕實(shí)現(xiàn)本地文件上傳;
fileName, fileType = QtWidgets. QFileDialog.getOpenFileName(self, "選取文件", os.getcwd(), "自定義(*.jpg;*.png;*.jpeg;*);;All Files(*)")
(3) 增加了防錯(cuò)功能,當(dāng)上傳的文檔格式不是pdf時(shí),將不執(zhí)行程序,同時(shí)提示錯(cuò)誤;
(4) 將pdf第一頁(yè)轉(zhuǎn)為圖片,并用label組件顯示;
(5) 在def xzwj(self):程序中可實(shí)現(xiàn)按頁(yè)數(shù)提取word;
(6) 借助converter模塊實(shí)現(xiàn)轉(zhuǎn)化word。
三、最后在主程序中加入以上子程序。
if __name__ =="__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
win = mywindow()
pw = pdwwindow()
win.show()
win.pdf_word.clicked.connect(win.pic_main)
win.pdf_word.clicked.connect(pw.show)
pw.Reback.clicked.connect(pw.re_back)
pw.Reback.clicked.connect(win.show)
pw.scwd.clicked.connect(pw.sctp)
pw.xzwd.clicked.connect(pw.xzwj)
sys.exit(app.exec_())
四、總結(jié)
原文鏈接:https://blog.csdn.net/Crazydoubao/article/details/125177027
相關(guān)推薦
- 2022-07-20 C語(yǔ)言實(shí)例講解嵌套語(yǔ)句的用法_C 語(yǔ)言
- 2022-10-10 React?組件的常用生命周期函數(shù)匯總_Redis
- 2022-04-25 ASP.NET?Core?MVC緩存Tag?Helpers到內(nèi)存_實(shí)用技巧
- 2022-10-05 Ubuntu?Server?20.04?LTS?環(huán)境下搭建vim?編輯器Python?IDE的詳細(xì)步
- 2022-06-25 Android開發(fā)壁紙的驗(yàn)證設(shè)置和確認(rèn)功能實(shí)現(xiàn)demo_Android
- 2022-04-09 SpringBoot設(shè)置CorsFilter過濾器解決跨域問題
- 2022-07-09 kernel利用pt?regs劫持seq?operations的遷移過程詳解_C 語(yǔ)言
- 2023-06-17 Flask中特殊裝飾器的使用_python
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支