python代码编写pyqt5

主窗口的类型:有三种窗口

# 相关函数方法
setWindowTitle() # 设置主窗口的标题
resize() # 设置窗口的大小
statusBar() # 创建状态栏
showMessage('信息',过期时间/秒) # 状态栏展示的信息
setWindowIcon(QIcon(图标)) # 设置窗口图标
QDesktopWidget().screenGeometry() # 获取屏幕的坐标系
geometry() # 获取窗口坐标系
move() # 移动窗口
QPushButton() # 创建按钮
QPushButton().clicked.connect(self.onClick_Button) # 将按钮与槽(自定义函数)绑定,点击按钮触发事件执行函数
QHBoxLayout() # 创建水平布局
QVBoxLayout() # 创建垂直布局
mainLayout = QGridLayout() # 创建栅格布局
mainLayout.addWidget(控件名,控件位置行索引,控件位置行索引,控件占几行,控件占几列)
setBuddy() # 设置伙伴控件
QHBoxLayout().addWidget() # 添加组件到水平布局中
QWidget() # 子窗口,
QWidget().setLayout(布局) # 将某种布局放到屏幕上
setCentralWidget(屏幕) # 让屏幕及框架放到窗口上
sender = self.sender() # 可以获取到button
sender.text() # 获取到按钮上的内容
app = QApplication.instance() # 得到一个实例
app.quit() # 退出应用程序
setFont(QFont('字体', 大小)) # 设置字体和大小
setToolTip() # 设置悬浮提示信息
setGeometry(左右, 上下, 宽, 高) #第一个参数 是用户区域参照与屏幕左上角坐标原点的x坐标和y坐标,后面两个参数分别是用户区域的宽和高
# QLabel控件的基本用法
QLabel() # 创建label
setAlignment(Qt.AlignCenter):设置文本的对齐方式,文本居中对齐
setPixmap(QPixmap("./images/4.jpg")) #用于在标签或按钮上显示图像,类型又BMP,GIF,JPG等
setOpenExternalLinks(True) #要么触发单击事件,要么链接,只能二者选其一,如果设为True用浏览器打开网页,如果设为False,调用槽函数
setAutoFillBackground(True) #背景自动填充
palette = QPalette() #填充
palette.setColor(QPalette.Window,Qt.blue) #设置label背景颜色
setPalette() # 调试板
setIndent(): #设置文本缩进
text(): #获取文本内容
setBuddy(): #设置伙伴关系
setText(): #设置文本内容
selectText(): #返回所选择的字符
setWordWrap(): #设置是否允许换行
linkHovered #当鼠标滑过QLabel控件时触发
linkActivated # 当鼠标单击QLabel控件时触发
QMainWindow:可以包含菜单栏、工具栏和标题栏,是最常见的窗口形式
QDialog:是对话窗口的基类,没有菜单栏、工具栏和标题栏
QWidget:不确定窗口的用途,就是用QWidget.
我们一般会使用QMainWindow,在QMainWindow里面使用QDialog,偶尔使用QWidget # 屏幕坐标
屏幕左上角坐标是(0,0)
工作区高度:窗口高度(不包含标签栏)
标签栏高度:标签栏坐标减去工作区坐标
widget.resize() # 设置的是工作区的尺寸
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.QtGui import QIcon class FirstMainWin(QMainWindow):
def __init__(self, parent=None):
super().__init__(parent) # 设置主窗口的标题
self.setWindowTitle('第一个窗口标题') # 设置窗口的尺寸
self.resize(400, 300)
self.status = self.statusBar()
self.status.showMessage('只存在5秒的消息', 5000) if __name__ == '__main__':
app = QApplication(sys.argv)
app.setWindowIcon(QIcon('./images/1.ico'))
main = FirstMainWin()
main.show()
sys.exit(app.exec_())

使用QDialog显示通用对话框

import sys
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import * class QDialogDemo(QMainWindow):
def __init__(self):
super().__init__()
self.initUI() def showDialog(self):
# 创建对话框
dialog = QDialog()
button = QPushButton('确定', dialog)
button.clicked.connect(dialog.close)
button.move(50, 50)
dialog.setWindowTitle('对话框')
# 设置模式
dialog.setWindowModality(Qt.ApplicationModal)
dialog.exec() # 显示对话框 def initUI(self):
self.setWindowTitle('QDialog案例')
self.resize(300, 200)
# 创建按钮
self.button = QPushButton(self)
self.button.setText('弹出对话框')
self.button.move(50, 50)
self.button.clicked.connect(self.showDialog) if __name__ == '__main__':
app = QApplication(sys.argv)
app.setWindowIcon(QIcon('1.jpg'))
main = QDialogDemo()
main.show()
sys.exit(app.exec_())

显示不同类型的消息对话框 QMessageBox

import sys

from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import * class QMessageBoxDemo(QWidget):
def __init__(self):
super(QMessageBoxDemo, self).__init__()
self.initUI() def initUI(self):
self.setWindowTitle('MessageBox 案例')
self.resize(300, 400)
# 垂直布局
layout = QVBoxLayout()
# 创建按钮
self.button1 = QPushButton()
self.button1.setText('显示关于对话框')
self.button1.clicked.connect(self.showDialog) self.button2 = QPushButton()
self.button2.setText('显示消息对话框')
self.button2.clicked.connect(self.showDialog) self.button3 = QPushButton()
self.button3.setText('显示警告对话框')
self.button3.clicked.connect(self.showDialog) self.button4 = QPushButton()
self.button4.setText('显示错误对话框')
self.button4.clicked.connect(self.showDialog) self.button5 = QPushButton()
self.button5.setText('显示提问对话框')
self.button5.clicked.connect(self.showDialog) # 将组件按钮添加到垂直布局中
layout.addWidget(self.button1)
layout.addWidget(self.button2)
layout.addWidget(self.button3)
layout.addWidget(self.button4)
layout.addWidget(self.button5) # 将布局放到屏幕上
self.setLayout(layout) def showDialog(self):
# 获取按钮文本内容
text = self.sender().text()
if text == '显示关于对话框':
# about弹出关于对话框
QMessageBox.about(self, '关于', '这是一个关于对话框')
elif text == '显示消息对话框':
reply = QMessageBox.information(self, '消息', '这是一个消息对话框', QMessageBox.Yes|QMessageBox.No, QMessageBox.Yes)
print(reply == QMessageBox.Yes)
elif text == '显示警告对话框':
QMessageBox.warning(self, '警告', '这是一个警告对话框', QMessageBox.Yes|QMessageBox.No, QMessageBox.Yes)
elif text == '显示错误对话框':
QMessageBox.critical(self, '错误', '这是一个错误对话框', QMessageBox.Yes|QMessageBox.No, QMessageBox.Yes)
elif text == '显示提问对话框':
QMessageBox.question(self, '提问', '这是一个提问对话框', QMessageBox.Yes|QMessageBox.No, QMessageBox.Yes) if __name__ == '__main__':
app = QApplication(sys.argv)
app.setWindowIcon(QIcon('1.jpg'))
main = QMessageBoxDemo()
main.show()
sys.exit(app.exec_()) <--------------------------------------->
information(QWdiget parent,title,text,buttons,defaultButton) #弹出消息对话框
question(QWidget parent,title,text,buttons,defaultButton)# 弹出问答对话框
warning(QWidget parent,title,text,buttons,defaultButton)# 弹出警告对话框
critical(QWidget parent,title,text,buttons,defaultButton) # 弹出错误对话框
about(QWidget parent,title,text) # 弹出关于对话框
# 参数
QWdiget parent: 指定的父窗口控件
title: 对话框标题
text: 对话框文本
button: 对个标准按钮,默认为Ok, QMessageBox.Yes | QMessage.No
defaultButton: 默认选中的标准按钮,默认选中第一个标准按钮

显示不同类型的消息对话框 QInputDialog

import sys

from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import * class QInputDialogDemo(QWidget):
def __init__(self):
super(QInputDialogDemo, self).__init__()
self.initUI() def initUI(self):
# 设置窗口标题
self.setWindowTitle('输入对话框')
# 创建表单布局
layout = QFormLayout()
# 创建按钮
self.button1 = QPushButton('获取列表中的选项')
# 绑定槽
self.button1.clicked.connect(self.getItem)
# 创建输入框
self.lineEdit1 = QLineEdit()
# 将按钮和输入框添加到一行中
layout.addRow(self.button1, self.lineEdit1) self.button2 = QPushButton('获取字符串')
self.button2.clicked.connect(self.getText)
self.lineEdit2 = QLineEdit()
layout.addRow(self.button2, self.lineEdit2) self.button3 = QPushButton('获取整数')
self.button3.clicked.connect(self.getInt)
self.lineEdit3 = QLineEdit()
layout.addRow(self.button3, self.lineEdit3) self.setLayout(layout) def getItem(self):
items = ("C", "C++", "Python", "Java", "Rudy")
# getItem获取列表里的选项输入
item, ok = QInputDialog.getItem(self, '请选择编程语言', '语言列表', items)
if ok and item:
self.lineEdit1.setText(item) def getText(self):
# getText获取标准字符串的输入
text, ok = QInputDialog.getText(self, '文本输入框', '输入姓名')
if ok and text:
self.lineEdit2.setText(text) def getInt(self):
# getInt获取整数的输入
num, ok = QInputDialog.getInt(self, '整型输入框', '输入整数')
if ok and num:
self.lineEdit3.setText(str(num)) if __name__ == '__main__':
app = QApplication(sys.argv)
app.setWindowIcon(QIcon('1.jpg'))
main = QInputDialogDemo()
main.show()
sys.exit(app.exec_())

文件对话框 QFileDialog

# 打开本地图片并展示到屏幕上
# 选择本地文本文件,并将内容展示到屏幕上
import sys from PyQt5.QtGui import QIcon
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import * class QFileDialogDemo(QWidget):
def __init__(self):
super(QFileDialogDemo, self).__init__()
self.initUI() def initUI(self):
# 创建垂直布局
layout = QVBoxLayout()
# 创建按钮
self.button1 = QPushButton('加载图片')
# 绑定槽
self.button1.clicked.connect(self.loadImage)
# 将按钮添加到布局中
layout.addWidget(self.button1) # 创建label
self.imageLabel = QLabel()
# 将label添加到布局中
layout.addWidget(self.imageLabel) self.button2 = QPushButton('加载文本文件')
self.button2.clicked.connect(self.loadText)
layout.addWidget(self.button2) self.contents = QTextEdit()
layout.addWidget(self.contents) # 将layout布局添加到屏幕上
self.setLayout(layout)
self.setWindowTitle('文件对话框演示') def loadImage(self):
# 选择单个文件
# getOpenFileName 返回用户所选择文件的名称,并打开该文件
fname, _ = QFileDialog.getOpenFileName(self, '打开文件', '.', '图像文件(*.jpg *.png)')
# 用于在标签上显示图片
self.imageLabel.setPixmap(QPixmap(fname)) def loadText(self):
# 创建用于打开和保存文件的标准对话框
dialog = QFileDialog()
# 设置可以选择的文件类型,枚举常量是:
# QFileDialog,AnyFile:任何文件
# QFileDialog.ExistingFile: 已存在的文件
# QFileDialog.Directory: 文件目录
# QFileDialog.ExistingFiles: 已存在的多个文件
dialog.setFileMode(QFileDialog.AnyFile)
# 设置过滤器
dialog.setFilter(QDir.Files)
if dialog.exec_():
# 接受选择文件的路径,默认为列表
filenames = dialog.selectedFiles()
# 列表中第一个元素即是文件路径,
f = open(filenames[0], mode='r', encoding='utf-8')
with f:
# 读取文本内容
data = f.read()
# 将读取到的内容添加到多行文本框中
self.contents.setText(data) if __name__ == '__main__':
app = QApplication(sys.argv)
app.setWindowIcon(QIcon('1.jpg'))
main = QFileDialogDemo()
main.show()
sys.exit(app.exec_())

选项卡控件 QTabWidget

import sys

from PyQt5.QtGui import QIcon
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import * class TabWidgetDemo(QTabWidget):
def __init__(self, parent=None):
super(TabWidgetDemo, self).__init__(parent)
self.setWindowTitle('选项卡控件:QTabWidget')
# 创建用于显示控件的窗口
self.tab1 = QWidget()
self.tab2 = QWidget()
self.tab3 = QWidget()
self.addTab(self.tab1, '选项卡1')
self.addTab(self.tab2, '选项卡2')
self.addTab(self.tab3, '选项卡3') self.tab1UI()
self.tab2UI()
self.tab3UI() def tab1UI(self):
# 创建布局
layout = QFormLayout()
layout.addRow('姓名', QLineEdit())
layout.addRow('地址', QLineEdit())
# 每个tab的内容,参数1表示索引下标,从0开始,参数2为文本内容
self.setTabText(0, '联系方式')
self.tab1.setLayout(layout) def tab2UI(self):
# 创建表单布局
layout = QFormLayout()
# 创建水平布局
sex = QHBoxLayout()
sex.addWidget(QRadioButton('男'))
sex.addWidget(QRadioButton('女'))
layout.addRow(QLabel('性别'), sex)
layout.addRow('生日', QLineEdit())
self.setTabText(1, '个人详细信息')
# 将表单布局添加到tab2的窗口上
self.tab2.setLayout(layout) def tab3UI(self):
# 创建水平布局
layout = QHBoxLayout()
layout.addWidget(QLabel('科目'))
layout.addWidget(QCheckBox('物理'))
layout.addWidget(QCheckBox('高数'))
self.setTabText(2, '教育程度')
self.tab3.setLayout(layout) if __name__ == '__main__':
app = QApplication(sys.argv)
app.setWindowIcon(QIcon('1.jpg'))
main = TabWidgetDemo()
main.show()
sys.exit(app.exec_())

堆栈窗口控件 QStackeWidget

import sys

from PyQt5.QtGui import QIcon
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import * class QStackeWidgetDemo(QWidget):
def __init__(self):
super(QStackeWidgetDemo, self).__init__()
self.setGeometry(300, 50, 10, 10)
self.setWindowTitle('堆栈窗口控件:QStackeWidget')
# 创建一个与QListView提供的列表视图类似的列表视图,具有用于添加和删除项目的接口,使用一个内部模型来管理列表中的每一个QListWidgetItem
self.list = QListWidget()
# 在指定是索引位置添加对象或字符串
self.list.insertItem(0, '联系方式')
self.list.insertItem(1, '个人信息')
self.list.insertItem(2, '教育程度') # 三个页面
self.stack1 = QWidget()
self.stack2 = QWidget()
self.stack3 = QWidget() self.tab1UI()
self.tab2UI()
self.tab3UI() # 创建堆栈窗口
self.stack = QStackedWidget()
# 将上面创建的三个子窗口添加到堆栈窗口中
self.stack.addWidget(self.stack1)
self.stack.addWidget(self.stack2)
self.stack.addWidget(self.stack3) # 创建水平布局
hbox = QHBoxLayout()
# 将列表视图添加到水平布局中
hbox.addWidget(self.list)
# 将堆栈窗口添加到水平布局中
hbox.addWidget(self.stack)
# 将整个水平布局添加到当前屏幕上
self.setLayout(hbox)
# 改变列表行时触发的事件
self.list.currentRowChanged.connect(self.display) def display(self, index):
"""通过这个函数来切换索引
隐式的将索引传递过来
"""
self.stack.setCurrentIndex(index) def tab1UI(self):
# 表单布局
layout = QFormLayout()
layout.addRow('姓名', QLineEdit())
layout.addRow('地址', QLineEdit())
self.stack1.setLayout(layout) def tab2UI(self):
# 水平布局
layout = QFormLayout()
hb_sex = QHBoxLayout()
hb_sex.addWidget(QRadioButton('男'))
hb_sex.addWidget(QRadioButton('女'))
layout.addRow('性别', hb_sex)
layout.addRow('生日', QLineEdit())
self.stack2.setLayout(layout) def tab3UI(self):
# 水平布局
layout = QHBoxLayout()
layout.addWidget(QLabel('科目'))
layout.addWidget(QCheckBox('物理'))
layout.addWidget(QCheckBox('高数'))
self.stack3.setLayout(layout) if __name__ == '__main__':
app = QApplication(sys.argv)
app.setWindowIcon(QIcon('1.jpg'))
main = QStackeWidgetDemo()
main.show()
sys.exit(app.exec_())

停靠控件 QDockWidget

import sys

from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import * class DockDemo(QMainWindow):
def __init__(self):
super(DockDemo, self).__init__()
self.setWindowTitle('停靠控件: QDockWidget') # 水平布局
layout = QHBoxLayout()
# 创建QDockWidget窗口(标题, 自身窗口)
self.items = QDockWidget('Dockable', self)
# 创建列表视图
self.listWidget = QListWidget()
self.listWidget.addItem('item1')
self.listWidget.addItem('item2')
self.listWidget.addItem('item3')
# 将列表视图添加到QDockWidget窗口
self.items.setWidget(self.listWidget)
# 将输入框设置为中央小控件
self.setCentralWidget(QLineEdit())
# 设置Dock窗口是否可以浮动,如果设置为True,则表示可以浮动
self.items.setFloating(False)
# 将窗口放置在中央小控件的右侧
self.addDockWidget(Qt.RightDockWidgetArea, self.items) if __name__ == '__main__':
app = QApplication(sys.argv)
app.setWindowIcon(QIcon('1.jpg'))
main = DockDemo()
main.show()
sys.exit(app.exec_())

容纳多文档的窗口

"""
容纳多文档的窗口
容纳多文档的 QMdiArea
多文档子窗口类 QMdiSubWindow
将QMdiSubWindow添加至QMdiArea中
"""
import sys from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import * class MultiDemo(QMainWindow):
count = 0 def __init__(self, parent=None):
super(MultiDemo, self).__init__(parent)
# 设置窗口标题
self.setWindowTitle('容纳多文档的窗口')
# 层叠,平铺
self.mdi = QMdiArea()
# 将mdi设置为中央控件
self.setCentralWidget(self.mdi) # 创建一个菜单栏
bar = self.menuBar()
# 添加菜单
file = bar.addMenu('File')
# 新建窗口
file.addAction('New')
# 显示方式,层叠
file.addAction('cascade')
# 显示方式,平铺
file.addAction('Tiled')
# 关联事件
file.triggered.connect(self.windowaction) def windowaction(self, q):
print(q)
print(q.text())
if q.text() == 'New':
MultiDemo.count += 1
# 实例化多文档界面对象
sub = QMdiSubWindow()
# 将文本编辑编辑组件添加到多文档界面中
sub.setWidget(QTextEdit())
# 设置当前窗口的标题
sub.setWindowTitle("子窗口" + str(MultiDemo.count))
# 将子窗口添加到Mdi区域
self.mdi.addSubWindow(sub)
# 子窗口显示
sub.show()
elif q.text() == "cascade":
self.mdi.cascadeSubWindows()
elif q.text() == "Tiled":
self.mdi.tileSubWindows() if __name__ == '__main__':
app = QApplication(sys.argv)
app.setWindowIcon(QIcon('./images/t10.ico'))
main = MultiDemo()
main.show()
sys.exit(app.exec_())

pyqt5学习示例的更多相关文章

  1. PyQt5学习笔记-从主窗体打开一个子窗体

    PyQt5学习笔记-从主窗体打开一个子窗体 软件环境: Eric6+Python3.5+PyQt5 试验目标: 1.点击菜单项Open,打开一个子窗体 2.点击按钮Open,打开一个子窗体 主窗体设计 ...

  2. osg学习示例之遇到问题四骨骼动画编译osgCal

    osg学习示例之遇到问题四骨骼动画编译osgCal 转自:http://blog.csdn.net/wuwangrun/article/details/8239451 今天学到书<OpenSce ...

  3. 不学就吃亏的underscorejs类库学习示例 ——(集合篇)

    underscorejs是一个很不错的类库,我的很多项目都引用了这个类库,的确可以带来很多方便. 记得我当初学的时候,看underscorejs的api是看的一知半解的,甚至不明白api里的conte ...

  4. zigbee学习:示例程序SampleApp中按键工作流程

    zigbee学习:示例程序SampleApp中按键工作流程 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:WIN7 开发环境:IAR8. ...

  5. zigbee学习:示例程序SampleApp中通讯流程

    zigbee学习:示例程序SampleApp中通讯流程 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 参考链接: http://wjf88223.bl ...

  6. Markdown学习示例

    Markdown学习示例 什么是Markdown Markdown是一种在web显示带样式风格文本的方式.你能通过它控制文本的字体样式.插入图片.插入列表等.通常,Markdown使用一些特殊的非字母 ...

  7. 大数据下基于Tensorflow框架的深度学习示例教程

    近几年,信息时代的快速发展产生了海量数据,诞生了无数前沿的大数据技术与应用.在当今大数据时代的产业界,商业决策日益基于数据的分析作出.当数据膨胀到一定规模时,基于机器学习对海量复杂数据的分析更能产生较 ...

  8. Pyqt5学习笔记(一)

    Python已有的GUI框架: Tkinter(python内嵌的GUI环境,使用TCL实现,易学易用,方便简单创GUI自带无需安装,适用于Unix.Windows和Mac系统组,在Tk8.0的后续版 ...

  9. Vue.js 学习示例

    本篇和大家分享的是学习Vuejs的总结和调用webapi的一个小示例:快到年底了争取和大家多分享点东西,希望能对各位有所帮助:本章内容希望大家喜欢,也希望各位多多扫码支持和推荐谢谢: » Vuejs ...

  10. Pyqt5学习系列

    最近在学习Pyqt5做界面,找到了一个非常棒的博主的学习系列 在此记录下来: http://blog.csdn.net/zhulove86/article/category/6381941

随机推荐

  1. [转帖]vCenter使用 VMCA 续订证书:续订证书时发生意外错误

    https://www.dinghui.org/vcenter-sts-certificate.html 起因:有一处客户vCenter告警:STS签名证书即将过期. 处理办法:系统管理-证书-证书管 ...

  2. ZCube:在我的优惠券中的落地实践 | 京东云技术团队

    ​ 前言 我的优惠券作为营销玩法的一种运营工具,在营销活跃场中起到很至关重要的作用.如何更加高效的赋能业务,助理业务发展,灵活扩展业务,是我们一直追求和思考的方向 一.背景 1.1 现状 营销中台作为 ...

  3. 对象中是否有某一个属性是否存在有三种方法 in hasOwnProperty Object.hasOwn

    如何看某个对象中没有某一个属性 如果我们要检测对象是否拥有某一属性,可以用in操作符 var obj= { name: '类老师', age: 18, school: '家具' }; console. ...

  4. iOS安装包瘦身总结

    前段时间APP要做资源压缩,需要把项目中使用的所有图片资源进行压缩,以减小APP安装包体积.想着既然压缩APP资源是为了缩小APP体积,那么来一遍APP整体瘦身流程并做一下总结吧. 整个过程分三步: ...

  5. 【STL源码剖析】vector类模拟实现 了解底层-走进底层-掌握底层【超详细的注释和解释】

    今天博主继续带来STL源码剖析专栏的第二篇博客了! 今天带来vector的模拟实现! 其实在很多人学习C++过程中,都是只学习一些STL的使用方式,并不了解底层的实现.博主本人认为,这样的学习这样的技 ...

  6. 【STL源码剖析】string类模拟实现 了解底层-走进底层-掌握底层【超详细的注释和解释】

    文章目录 博主对大家的话 前言 实现过程一些要注意的点 STL中string类模拟实现 尾声 博主对大家的话 从今天开始,STL源码剖析的专栏就正式上线了!其实在很多人学习C++过程中,都是只学习一些 ...

  7. 【图论】【Matlab】最小生成树之Kruskal算法【贪心思想超详细详解Kruskal算法并应用】

    最小生成树之Kruskal算法 注意:内容学习来自:b站CleverFrank数模算法精讲 导航 前言 实际问题引入 Kruskal算法 整体代码展示 尾声 前言 博主今天给大家带来的是最小生成树中两 ...

  8. 实战视频所需要的IDE和工具软件的下载链接

    以下是视频实战所需要的IDE和工具软件的下载链接: Visual Studio Code(适用于Windows.Mac和Linux):https://code.visualstudio.com/dow ...

  9. 案例:推进GTID解决MySQL主主不同步问题

    之前文章介绍过MySQL修改lower_case_table_names参数,如果之前大写存储的表将无法识别,需要特殊处理. 最近遇到一例应用开发人员在修改这个参数之后,为了清除之前大写存储的表,做了 ...

  10. .NET Core开发实战(第24课:文件提供程序:让你可以将文件放在任何地方)--学习笔记

    24 | 文件提供程序:让你可以将文件放在任何地方 文件提供程序核心类型: 1.IFileProvider 2.IFileInfo 3.IDirectoryContents IFileProvider ...