Python----PyQt开发(PyQt高级:组件大小,界面位置,按钮,文本显示,文本输入,字体大小)
一、大小
setMinimumSize(width, height)
描述:
设置控件的最小尺寸。控件不会被缩小到比这个尺寸更小的大小。
参数:
width: 最小宽度(以像素为单位)。
height: 最小高度(以像素为单位)。
button.setMinimumSize(100, 50) # 设置按钮的最小大小为宽100高50像素
setMaximumSize(width, height)
描述:
设置控件的最大尺寸。控件不会被扩大到比这个尺寸更大的大小。
参数:
width: 最大宽度(以像素为单位)。
height: 最大高度(以像素为单位)。
button.setMaximumSize(200, 100) # 设置按钮的最大大小为宽200高100像素
setFixedSize(width, height)
描述:
设置控件的固定尺寸。控件的大小将被固定,不可调整。
参数:
width: 固定宽度(以像素为单位)。
height: 固定高度(以像素为单位)。
button.setFixedSize(150, 75) # 设置按钮的固定大小为宽150高75像素
resize(width, height)
描述:
调整控件的当前大小。与 setFixedSize 不同,此方法允许控件在其最小和最大尺寸范围内调整大小。
参数:
width: 新宽度(以像素为单位)。
height: 新高度(以像素为单位)。
button.resize(120, 60) # 调整按钮的大小为宽120高60像素
size()
描述:
获取控件的当前大小,返回一个 QSize 对象,包含控件的当前宽度和高度。
返回值:
QSize 对象。
current_size = button.size() # 获取按钮的当前大小
print("Width:", current_size.width(), "Height:", current_size.height())
minimumSize()
描述:
获取控件设置的最小大小,返回一个 QSize 对象。
返回值:
QSize 对象。
min_size = button.minimumSize() # 获取按钮的最小大小
print("Minimum Width:", min_size.width(), "Minimum Height:", min_size.height())
maximumSize()
描述:
获取控件设置的最大大小,返回一个 QSize 对象。
返回值:
QSize 对象。
max_size = button.maximumSize() # 获取按钮的最大大小
print("Maximum Width:", max_size.width(), "Maximum Height:", max_size.height())
setContentsMargins(left, top, right, bottom)
描述:
设置控件内容与边缘之间的边距。边距影响控件的可用绘制区域。
参数:
left: 左边距(以像素为单位)。
top: 上边距(以像素为单位)。
right: 右边距(以像素为单位)。
bottom: 下边距(以像素为单位)。
widget.setContentsMargins(10, 10, 10, 10) # 设置所有边距为10像素
二、位置
2.1、设置窗口在桌面的显示位置
要在桌面上设置窗口的位置,可以使用 move(x, y) 方法。
参数:
x: 窗口左上角的水平位置(以像素为单位)。
y: 窗口左上角的垂直位置(以像素为单位)。
import sys
from PyQt5.QtWidgets import QApplication, QWidget app = QApplication(sys.argv) # 创建窗口实例
window = QWidget()
window.setWindowTitle("My Window") # 设置窗口位置 (100, 100) 在桌面上
window.move(100, 100) # 设置窗口大小
window.resize(400, 300) # 显示窗口
window.show()
sys.exit(app.exec_())
2.2、窗口位置居中
cursor_pos = QCursor.pos()
QCursor.pos():
描述: 这个静态方法返回当前鼠标光标的位置,返回的是一个 QPoint 对象,表示光标在屏幕上的坐标(以像素为单位)。
用途: 你可以用这个位置来确定光标当前在哪个屏幕上,或者在鼠标悬停时获取控件的位置信息。
current_screen = app.screenAt(cursor_pos)
app.screenAt(cursor_pos):
描述: screenAt() 方法用于返回当前光标所在位置的屏幕对象。这个方法是 QApplication 类的一部分,接受一个 QPoint 参数(光标位置),并返回一个 QScreen 对象。
用途: 通过这个方法,你可以获取到光标所在的屏幕的信息,例如屏幕的尺寸、分辨率等。
screen_ret = current_screen.availableGeometry()
current_screen.availableGeometry():
描述: 这个方法返回一个 QRect 对象,表示当前屏幕上可用的几何区域(即可以用来放置窗口的区域),通常不包括任务栏、菜单栏等占用屏幕空间的部分。
用途: 你可以使用这个信息来决定窗口的位置和大小,确保窗口不会被任务栏或其他系统界面元素遮挡。

from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QCursor
import sysif __name__ == '__main__':# 创建 QApplication 实例,管理 GUI 应用程序的控制流程和主设置app = QApplication(sys.argv)# 创建主窗口 (QWidget)windows = QWidget()# 设置窗口标题为 '设置居中'windows.setWindowTitle('设置居中')# 获取当前鼠标光标在屏幕上的位置cursor_pos = QCursor.pos()# 在光标位置获取对应的屏幕current_screen = app.screenAt(cursor_pos)if current_screen is not None:# 获取当前屏幕的可用几何区域(大小和位置)creen_ret = current_screen.availableGeometry()# 计算屏幕宽度和高度的一半width = creen_ret.width() * 0.5height = creen_ret.height() * 0.5# 将窗口调整为屏幕可用宽度和高度的一半windows.resize(width, height)# 将窗口移动到屏幕的中心位置windows.move(width * 0.5, height * 0.5)# 打印当前屏幕的可用几何区域(用于调试)print(creen_ret) # 输出 QRect(矩形区域)表示可用几何区域print(creen_ret.width()) # 输出可用区域的宽度print(creen_ret.height()) # 输出可用区域的高度print(creen_ret.left()) # 输出可用区域的左侧位置print(creen_ret.top()) # 输出可用区域的顶部位置left=creen_ret.left()top=creen_ret.top()# 显示主窗口windows.show()# 启动应用程序的事件循环app.exec()
三、按钮--QPushButton
QPushButton 是一个可以被用户点击的按钮。可以通过 setText("Button Text") 设置按钮的文本,通过连接信号(如 clicked)来定义按钮被点击时触发的行为。
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QTextBrowser # 导入所需的PyQt5模块
import sys # 导入sys模块以处理命令行参数和退出程序 class Wight(QWidget): # 定义一个名为 Wight 的类,继承自 QWidget def __init__(self): super().__init__() # 调用父类的构造函数,初始化父类的属性 self.ui_init() # 调用自定义的 UI 初始化方法 self.setWindowTitle('按钮') # 设置窗口的标题 self.resize(800, 800) # 设置窗口的大小为800x800像素 self.move(555, 255) # 设置窗口在屏幕上的位置,坐标为(555, 255) def ui_init(self): # 初始化用户界面 self.show_btn = QPushButton(self) # 创建一个 QPushButton 实例,并将其设置为当前窗口的子控件 self.show_btn.setText('按钮') # 设置按钮的文本为"按钮" self.show_btn.setGeometry(350, 50, 100, 100) # 设置按钮的位置和大小,位置(350, 50),宽100高100像素 self.show_btn.clicked.connect(lambda: print("这是一个按钮的点击事件")) # 当按钮被点击时,输出提示信息 if __name__ == '__main__': app = QApplication(sys.argv) # 创建 QApplication 实例,传递命令行参数 w = Wight() # 创建 Wight 窗口实例 w.show() # 显示窗口 app.exec() # 进入应用程序主循环,等待事件处理

四、QTextBrowser
QTextBrowser 是一个用于显示和编辑富文本的控件,支持HTML格式。它可以显示多行文本并允许添加链接。
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QTextBrowser # 导入所需的 PyQt5 模块
import sys # 导入 sys 模块以处理命令行参数和退出程序 class Wight(QWidget): # 定义一个名为 Wight 的类,继承自 QWidget def __init__(self): super().__init__() # 调用父类的构造函数,初始化父类(QWidget)的属性 self.ui_init() # 调用自定义的 UI 初始化方法 self.setWindowTitle('文本介绍') # 设置窗口的标题为 "文本介绍" self.resize(800, 800) # 设置窗口的大小为 800x800 像素 self.move(555, 255) # 设置窗口在屏幕上的位置,坐标为 (555, 255) def ui_init(self): # 初始化用户界面 self.show_text = QTextBrowser(self) # 创建一个 QTextBrowser 实例,并将其设置为当前窗口的子控件 self.show_text.setGeometry(175, 200, 400, 400) # 设置 QTextBrowser 的位置和大小,位置 (175, 200),宽 400 高 400 像素 # 设置文本内容,介绍 QPushButton 的用法 self.show_text.setText( 'QPushButton 是一个可以被用户点击的按钮。' '可以通过 setText("Button Text") 设置按钮的文本,' '通过连接信号(如 clicked)来定义按钮被点击时触发的行为。' ) if __name__ == '__main__': app = QApplication(sys.argv) # 创建 QApplication 实例,传递命令行参数 w = Wight() # 创建 Wight 窗口实例 w.show() # 显示窗口 app.exec() # 进入应用程序主循环,等待事件处理

五、QPushButton与QTextBrowser结合
这是一个按钮与文本结合使用的,它将会以故宫位主要材料,通过点击按钮使文本出现故宫的介绍为主要内容,将会通过两种形式呈现这一方法的实现
5.1、纯编程
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QTextBrowser # 导入所需的 PyQt5 模块
import sys # 导入 sys 模块以处理命令行参数和退出程序 class Wight(QWidget): # 定义一个名为 Wight 的类,继承自 QWidget def __init__(self): super().__init__() # 调用父类的构造函数,初始化父类(QWidget)的属性 self.ui_init() # 调用自定义的 UI 初始化方法 self.setWindowTitle('故宫介绍') # 设置窗口的标题为 "故宫介绍" self.resize(800, 800) # 设置窗口的大小为 800x800 像素 self.move(555, 255) # 设置窗口在屏幕上的位置,坐标为 (555, 255) self.slot_init() # 调用槽函数初始化方法,连接按钮的信号 def ui_init(self): # 初始化用户界面 self.show_btn = QPushButton(self) # 创建一个 QPushButton 实例,并将其设置为当前窗口的子控件 self.show_btn.setText('按钮') # 设置按钮的文本为 "按钮" self.show_btn.setGeometry(350, 50, 100, 100) # 设置按钮的位置和大小,位置 (350, 50),宽 100 高 100 像素 self.show_text = QTextBrowser(self) # 创建一个 QTextBrowser 实例,用于显示文本 self.show_text.setGeometry(75, 200, 600, 400) # 设置 QTextBrowser 的位置和大小,位置 (75, 200),宽 600 高 400 像素 def slot_init(self): # 初始化信号与槽的连接 self.show_btn.clicked.connect(self.show_info) # 当按钮被点击时,连接到 show_info 方法 def show_info(self): # 定义显示故宫介绍的文本 data = '''
故宫又称紫禁城。中国古代讲究“天人合一”的规划理念,
用天上的星辰与都城规划相对应,以突出政权的合法性和
皇权的至高性。天帝居住在紫微宫,而人间皇帝自诩为受
命于天的“天子”,其居所应象征紫微宫以与天帝对应,
《后汉书》载“天有紫微宫,是上帝之所居也。王者立宫,
象而为之”。紫微、紫垣、紫宫等便成了帝王宫殿的代
称。由于封建皇宫在古代属于禁地,常人不能进入,故称为
“紫禁”。明朝初期同外禁垣一起统称“皇城”,大约明朝中晚
期,与外禁垣区分开来,即宫城叫“紫禁城”,外禁垣为“皇城”。
''' self.show_text.setText(data) # 将文本内容设置到 QTextBrowser 中显示 if __name__ == '__main__': app = QApplication(sys.argv) # 创建 QApplication 实例,传递命令行参数 w = Wight() # 创建 Wight 窗口实例 w.show() # 显示窗口 app.exec() # 进入应用程序主循环,等待事件处理


5.2、通过Designer 设计,代码完成交互
# -*- coding: utf-8 -*-# Form implementation generated from reading ui file 'untitled.ui'
#
# Created by: PyQt5 UI code generator 5.15.9
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.from PyQt5 import QtCore, QtGui, QtWidgetsclass Ui_Form(object):def setupUi(self, Form):Form.setObjectName("Form")Form.resize(534, 393)self.show_btn = QtWidgets.QPushButton(Form)self.show_btn.setGeometry(QtCore.QRect(60, 160, 71, 51))self.show_btn.setObjectName("show_btn")self.textBrowser = QtWidgets.QTextBrowser(Form)self.textBrowser.setGeometry(QtCore.QRect(180, 30, 321, 341))self.textBrowser.setObjectName("textBrowser")self.retranslateUi(Form)QtCore.QMetaObject.connectSlotsByName(Form)def retranslateUi(self, Form):_translate = QtCore.QCoreApplication.translateForm.setWindowTitle(_translate("Form", "Form"))self.show_btn.setText(_translate("Form", "故宫按钮"))

from untitled import Ui_Form
import sys
from PyQt5.QtWidgets import QApplication,QWidgetclass Mywindows(QWidget,Ui_Form):def __init__(self):super().__init__()self.setupUi(self)self.setWindowTitle('我是故宫')self.solt_init()def solt_init(self):self.show_btn.clicked.connect(self.show_info)def show_info(self):data = '''故宫又称紫禁城。中国古代讲究“天人合一”的规划理念,用天上的星辰与都城规划相对应,以突出政权的合法性和皇权的至高性。天帝居住在紫微宫,而人间皇帝自诩为受命于天的“天子”,其居所应象征紫微宫以与天帝对应,《后汉书》载“天有紫微宫,是上帝之所居也。王者立宫,象而为之”。紫微、紫垣、紫宫等便成了帝王宫殿的代称。由于封建皇宫在古代属于禁地,常人不能进入,故称为“紫禁”。明朝初期同外禁垣一起统称“皇城”,大约明朝中晚期,与外禁垣区分开来,即宫城叫“紫禁城”,外禁垣为“皇城”。'''self.textBrowser.setText(data)if __name__ == '__main__':app=QApplication(sys.argv)w=Mywindows()w.show()app.exec()


六、QLineEdit
QLineEdit 是一个用户输入单行文本的控件。可以通过设置文本、获取用户输入及处理文本输入的信号来使用。
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QTextBrowser, QLineEdit # 导入所需的 PyQt5 模块
import sys # 导入 sys 模块以处理命令行参数和退出程序class Wight(QWidget): # 定义一个名为 Wight 的类,继承自 QWidgetdef __init__(self):super().__init__() # 调用父类的构造函数,初始化父类的属性self.ui_init() # 调用自定义的 UI 初始化方法self.setWindowTitle('文本输入') # 设置窗口的标题为 "文本输入"self.resize(800, 800) # 设置窗口的大小为 800x800 像素self.move(555, 255) # 设置窗口在屏幕上的位置,坐标为 (555, 255)def ui_init(self):# 初始化用户界面self.line_edit = QLineEdit(self) # 创建一个 QLineEdit 实例,用于文本输入self.line_edit.setPlaceholderText("Enter something...") # 设置占位符提示文本# 连接 'returnPressed' 信号到处理方法self.line_edit.returnPressed.connect(self.print_input) # 当按下 Enter 键时调用 print_input 方法def print_input(self):# 获取输入框中的文本并打印到控制台input_text = self.line_edit.text() # 获取当前输入的文本print(input_text) # 输出到控制台if __name__ == '__main__':app = QApplication(sys.argv) # 创建 QApplication 实例,传递命令行参数w = Wight() # 创建 Wight 窗口实例w.show() # 显示窗口app.exec() # 进入应用程序主循环,等待事件处理

七、QPushButton与QTextBrowser与QLineEdit结合
这是一个按钮、文本和文本输入结合使用的,它将会以注册账号,清除内容为主编写,然后将改账号密码储存到一个txt文本中。其中会添加注册账号时的一些限制
1、清除clear()
self.username_text.clear()
self.pwd_text.clear()
2、隐藏密码
self.pwd_text.setEchoMode(QLineEdit.Password)
3、验证器
int_valider=QtGui.QIntValidator()#整数验证器
# int_valider = QtGui.QRegExpValidator()#正则验证器
# int_valider = QtGui.QDoubleValidator()#浮点数验证器reg_exp=QtCore.QRegExp("^\d{0,11}$")
reg_valider=QtGui.QRegExpValidator(reg_exp,self.username_text)
self.username_text.setValidator(reg_valider)
self.username_text.setValidator(int_valider)
import sys # 导入 sys 模块以处理命令行参数和退出程序
from PyQt5 import QtGui, QtCore # 从 PyQt5 导入图形界面和核心功能模块
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QLabel, QMessageBox, QLineEdit # 导入所需的 PyQt5 控件 class MyQwindow(QWidget): # 定义一个名为 MyQwindow 的类,继承自 QWidget def __init__(self): super().__init__() # 调用父类的构造函数,初始化父类的属性 self.setWindowTitle('标题---注册界面') # 设置窗口的标题 self.resize(550, 240) # 设置窗口的大小为 550x240 像素 self.move(1000, 500) # 设置窗口在屏幕上的位置 self.uit_init() # 调用用户界面初始化方法 self.slot_init() # 调用信号与槽初始化方法 def uit_init(self): # 初始化用户界面组件 self.username = QLabel('账号:', self) # 创建一个标签用于显示“账号” self.username.setGeometry(10, 20, 100, 50) # 设置标签的位置和大小 self.username_text = QLineEdit(self) # 创建一个 QLineEdit 用于输入用户名 self.username_text.setGeometry(80, 20, 220, 50) # 设置输入框的位置和大小 self.username_text.setMaxLength(10) # 设置输入的最大长度为 10 int_valider = QtGui.QIntValidator() # 创建整数验证器,限制输入为整数 # int_valider = QtGui.QRegExpValidator() # 这是正则表达式验证器# int_valider = QtGui.QDoubleValidator() # 这是浮点数验证器reg_exp = QtCore.QRegExp("^\d{0,11}$") # 定义一个正则表达式,支持 0 到 11 位数字 reg_valider = QtGui.QRegExpValidator(reg_exp, self.username_text) # 创建正则表达式验证器 self.username_text.setValidator(reg_valider) # 为用户名输入框设置正则验证器 self.username_text.setValidator(int_valider) # 为用户名输入框设置整数验证器(此行会覆盖正则验证器) self.username_btn = QPushButton(self) # 创建一个按钮用于“注册” self.username_btn.setText('注册') # 设置按钮的文本为“注册” self.username_btn.setGeometry(350, 20, 150, 50) # 设置按钮的位置和大小 self.pwd = QLabel('密码:', self) # 创建一个标签用于显示“密码” self.pwd.setGeometry(10, 80, 100, 50) # 设置标签的位置和大小 self.pwd_text = QLineEdit(self) # 创建一个 QLineEdit 用于输入密码 self.pwd_text.setGeometry(80, 80, 220, 50) # 设置输入框的位置和大小 self.pwd_text.setEchoMode(QLineEdit.Password) # 设置输入框为密码模式,输入内容以星号形式显示 self.clear_btn = QPushButton(self) # 创建一个按钮用于“清空” self.clear_btn.setText('清空') # 设置按钮的文本为“清空” self.clear_btn.setGeometry(350, 80, 150, 50) # 设置按钮的位置和大小 def slot_init(self): # 初始化信号与槽的连接 self.username_btn.clicked.connect(self.reg_slot) # 当“注册”按钮被点击时,连接到 reg_slot 方法 self.clear_btn.clicked.connect(self.clear_slot) # 当“清空”按钮被点击时,连接到 clear_slot 方法 def reg_slot(self): # 注册按钮的槽函数,处理注册逻辑 username = self.username_text.text() # 获取用户名输入框中的文本 pwd = self.pwd_text.text() # 获取密码输入框中的文本 # 验证输入 if username == '' and pwd == '': QMessageBox.warning(self, '注册', '用户名或密码不能为空') # 提示用户用户名和密码不能为空 elif 0 < len(username) < 10: QMessageBox.warning(self, '注册', '用户名长度不符合标准') # 提示用户用户名长度不符合标准 elif 0 < len(pwd) < 6: QMessageBox.warning(self, '注册', '密码长度不符合标准') # 提示用户密码长度不符合标准 else: # 如果输入有效,将信息写入文件 with open('user.txt', 'a+', encoding='utf-8') as f: info = f'账号:{username}, 密码:{pwd}\n' # 格式化要写入的信息 f.write(info) # 将信息写入文件 QMessageBox.warning(self, '注册', '恭喜你注册完成') # 提示用户注册成功 def clear_slot(self): # 清空输入框的槽函数 self.username_text.clear() # 清空用户名输入框 self.pwd_text.clear() # 清空密码输入框 if __name__ == '__main__': app = QApplication(sys.argv) # 创建 QApplication 实例,传递命令行参数 windows = MyQwindow() # 创建 MyQwindow 窗口实例 windows.show() # 显示窗口 sys.exit(app.exec_()) # 进入应用程序主循环,并确保程序正常退出



简易计算器
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QTextBrowser, QLabel, QMessageBox, QLineEdit
import sysclass MyQwindow(QWidget):def __init__(self):super().__init__()self.setWindowTitle('标题---计算器')self.resize(550, 280)self.move(1000, 500)self.uit_init()self.slot_init()def uit_init(self):self.inp = QLabel('输入:', self)self.inp.setGeometry(10, 20, 50, 50)self.inp_text = QLineEdit(self)self.inp_text.setGeometry(80, 20, 400, 50)self.inp_btn = QPushButton(self)self.inp_btn.setText('计算')self.inp_btn.setGeometry(100, 80, 150, 50)self.output = QTextBrowser(self)self.output.setGeometry(80, 160, 400, 100)self.clear_btn=QPushButton(self)self.clear_btn.setText('清空')self.clear_btn.setGeometry(300,80,150,50)def slot_init(self):self.inp_btn.clicked.connect(self.show_slot)self.clear_btn.clicked.connect(self.clear_slot)def show_slot(self):data = self.inp_text.text()self.output.setText(str(eval(data)))def clear_slot(self):self.inp_text.clear()if __name__ == '__main__':app = QApplication(sys.argv)windows = MyQwindow()windows.show()# app.exec()sys.exit(app.exec_())

八、修改文本中文字大小
self.text2.setFont(QFont('Arial',25))
from PyQt5.QtGui import QFont
from PyQt5.QtWidgets import QApplication, QWidget, QTextBrowser
import sys
class Wight(QWidget):def __init__(self):super().__init__()self.ui_init()self.setWindowTitle('文本')self.resize(800,800)self.move(555,255)def ui_init(self):self.text=QTextBrowser(self)self.text.setGeometry(0, 0, 600, 100)self.text.setText('修改文字之前')self.text2=QTextBrowser(self)self.text2.setGeometry(0, 100, 600, 400)self.text2.setFont(QFont('Arial',25))self.text2.setText('修改文字之后')if __name__ == '__main__':app=QApplication(sys.argv)w=Wight()w.show()app.exec()

九、思维导图

相关文章:
Python----PyQt开发(PyQt高级:组件大小,界面位置,按钮,文本显示,文本输入,字体大小)
一、大小 setMinimumSize(width, height) 描述: 设置控件的最小尺寸。控件不会被缩小到比这个尺寸更小的大小。 参数: width: 最小宽度(以像素为单位)。 height: 最小高度(以像素为单位)。 button.setMinimumSize(100, …...
qt + opengl 给立方体增加阴影
在前几篇文章里面学会了通过opengl实现一个立方体,那么这篇我们来学习光照。 风氏光照模型的主要结构由3个分量组成:环境(Ambient)、漫反射(Diffuse)和镜面(Specular)光照。下面这张图展示了这些光照分量看起来的样子: 1 环境光照(Ambient …...
vue2老版本 npm install 安装失败_安装卡主
vue2老版本 npm install 安装失败_安装卡主 特别说明:vue2老版本安装慢、运行慢,建议升级vue3element plus vite 解决方案1: 第一步、修改npm 镜像为国内镜像 使用淘宝镜像: npm config set registry https://registry.npmmir…...
20250213编译飞凌的OK3588-C_Linux5.10.209+Qt5.15.10_用户资料_R1
20250213编译飞凌的OK3588-C_Linux5.10.209Qt5.15.10_用户资料_R1 2025/2/13 11:43 缘起:飞凌发布了高版本内核的适配OK3588-C的Buildroot的SDK:OK3588-C_Linux5.10.209Qt5.15.10_用户资料_R1。 但是编译异常了。 于是按照百度升级libc6,可以…...
中望CAD c#二次开发 ——VS环境配置
新建类库项目:下一步 下一步 下一步: 或直接: 改为: <Project Sdk"Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>NET48</TargetFramework> <LangVersion>pr…...
【Elasticsearch】词干提取(Stemming)
词干提取是将一个词还原为其词根形式的过程。这确保了在搜索过程中,一个词的不同变体能够匹配到彼此。 例如,walking(行走)和walked(走过)可以被还原到同一个词根walk(走)。一旦被还…...
Rander压力测试监测,更改服务端资源node
测试策略 压力测试, 目前是本地VM的资源不够,导致压力瓶颈,目前本地的VM,CPU是6个,可以增加到8个,服务端目前资源利用率没有达到最高点 we are now using 3 nodes with 3 pods, therefore, we need the …...
Go语言实现十大排序算法超细节图片讲解
基础排序 冒泡排序 将序列中的元素进行两两比较,将大的元素移动到序列的末尾。 平均时间复杂度是O(n^2),最坏时间复杂度是O(n^2),最好时间复杂度是O(n),排序结果具有稳定性,空间复杂度是O(1)。 这里所说的稳定性是针对…...
linux-centos等测试环境做压力测试
一, jmeter环境安装 1, jdk下载安装 因为jmeter使用Java写的测试工具,应用需要jdk环境支持. yum -y install java-1.8.0-openjdk* 注意:【jdk和*通配符之间不能敲空格,有空格不能匹配所有的子文件】【安装过程中需要等待它执行完成,不要中…...
Django中实现可靠的定时任务调度系统
在许多Web应用程序中,定时任务是一个常见的需求。无论是数据同步、报告生成还是定期维护,都需要一个可靠的调度系统。本文将介绍如何在Django项目中实现一个强大的定时任务调度系统,该系统不仅能够按时执行任务,还能处理分布式环境中的并发问题。 1. 概述 我们将使用以下…...
【鸿蒙Next】写入沙箱的日志文件如何查看
demo案例:https://gitee.com/pengyoucongcode/TxtEdit 文章参考:https://blog.csdn.net/qq_42896653/article/details/144782468...
网页五子棋——通用模块
目录 项目创建 通用功能模块 错误码 自定义异常类 CommonResult jackson 加密工具 项目创建 使用 idea 创建 SpringBoot 项目,并引入相关依赖: 配置 MyBatis: 编辑 application.yml: spring:datasource: # 数据库连接配…...
第6章 6.2使用ASP.NET Core 开发WebAPI ASP.NET Core Web API
6.2.1 Web API项目的搭建 进入VS,【创建新项目】,选择【ASP.NET Core Web API】模板,【下一步】,编辑项目名称及项目位置,【下一步】,选择框架,其他选项默认即可,【创建】。 进入项…...
[MFC] 使用控件
介绍如何使用控件,以及如何获取控件中的数值 check Box 添加点击事件,即选中和取消选中触发的事件 第一种方式是按照如下方式第二种方式是直接双击点击进去 void CMFCApplication1Dlg::OnBnClickedCheckSun() {// TODO: 在此添加控件通知处理程序代…...
景联文科技:以精准标注赋能AI未来,打造高质量数据基石
在人工智能蓬勃发展的时代,数据已成为驱动技术革新的核心燃料,而高质量的数据标注则是让AI模型从“感知”走向“认知”的关键桥梁。作为深耕数据服务领域的创新者,景联文科技始终以“精准、高效、安全”为核心理念,为全球AI企业提…...
2月14(信息差)
🌍杭州:全球数贸港核心区建设方案拟出台 争取国家支持杭州在网络游戏管理给予更多权限 🎄Kimi深夜炸场:满血版多模态o1级推理模型!OpenAI外全球首次!Jim Fan:同天两款国产o1绝对不是巧合&#x…...
UE_C++ —— Metadata Specifiers
声明UClasses、UFunctions、UProperties、UEnums和UInterfaces时使用的元数据关键词,表示其与引擎和关卡编辑器诸多方面的互动方式; 当声明classe、interfaces、structs、enums、enum values、functions、or propertie时,可添加 Metadata Spe…...
C++ 常用的设计模式
1:单例模式:首先能想到的,最为重要的一个设计模式。确保一个类仅有一个实例,提供一个 全局访问点,惯用做法是屏蔽构造数访问(设为private),通过static 权限达到间接访问调用的目的…...
web集群(LVS-DR)
LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项 目,它的官方站点是 www.linuxvirtualserver.org。现在LVS已经是 Linux标准内核的一部分,在 Linux2.4内核以前,使用LVS时必须要重新编…...
Instagram与小红书的自动化运营
Instagram与小红书的自动化运营 引言 在这个信息爆炸的时代,社交媒体成为了与世界互动的重要平台。在这样的背景下,如何高效地运营你的Instagram或小红书账户,成为众多内容创作者和品牌的重要课题。那么,自动化运营究竟是什么&a…...
从二维到三维3D工业相机如何改变机器视觉检测
从二维到三维,3D工业相机在机器视觉检测中带来了显著变革,主要体现在以下几个方面: 深度信息获取 二维相机:只能提供平面信息,无法获取物体的深度。 三维相机:通过深度信息,能够更精确地测量物…...
多媒体软件安全与授权新范例,用 CodeMeter 实现安全、高效的软件许可管理
背景概述 Reason Studios 成立于 1994 年,总部位于瑞典斯德哥尔摩,是全球领先的音乐制作软件开发商。凭借创新的软件产品和行业标准技术,如 ReWire 和 REX 文件格式,Reason Studios 为全球专业音乐人和业余爱好者提供了一系列高质…...
DeePseek结合PS!批量处理图片的方法教程
今天我们来聊聊如何利用deepseek和Photoshop(PS)实现图片的批量处理。 传统上,批量修改图片尺寸、分辨率等任务往往需要编写脚本或手动处理,而现在有了AI的辅助,我们可以轻松生成PS脚本,实现自动化处…...
2.14寒假作业
web:[SWPUCTF 2021 新生赛]PseudoProtocols 打开环境给了提示要我们找 hint.php url是给了后缀的,不单纯是地址,直接用为协议看一下目标文件,得到base64加密的文字 解密,提示我们访问一个文件 跟着思路走访问文件之后…...
【鱼眼镜头12】Scaramuzza的鱼眼相机模型实操,不依赖于具体的相机几何结构,直接从图像数据出发,因此更具灵活性。
文章目录 Scaramuzza相机模型标定效果2、原理和代码代码1、 2D映射到3D,函数输入为2D点坐标OCAM参数代码功能详解2、3D --> 2D 3、总结Scaramuzza 模型的核心思想Scaramuzza 模型的核心思想与 Kannala-Brandt 模型的对比Scaramuzza 模型的独特之处Scaramuzza 的意…...
(Windows | Linux)ssh访问服务器报错:no matching key exchange method found
问题现象 ssh user1192.168.1X.XX Unable to negotiate with 192.168.1X.XX port 22: no matching key exchange method found. Their offer: gss-group1-sha1-toWM5Slw5Ew8Mqkayal2g,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-…...
达梦分布式集群DPC_架构详解_yxy
达梦分布式集群DPC_架构详解 1 DPC核心架构介绍1.1 架构图1.2 DPC核心架构组件 2 多副本2.1 多副本架构图2.2 多副本示例2.3 RAFT组概念2.4 表空间与RAFT组的关系 1 DPC核心架构介绍 1.1 架构图 1.2 DPC核心架构组件 DMDPC 架构由三部分组成 SP(SQL Processor&…...
51单片机独立按键的扩展应用
提示: 按键S7和S6为选择键,确定控制键控制那组LED指示灯。按键S5和S4为控制键,按键该键点亮指定的LED指示灯,松开后熄灭。按下S7点亮L1指示灯,L1点亮后,S6不响应操作,S5控制L3,S4控…...
浅识MQ的 Kafka、ActiveMQ、RabbitMQ、RocketMQ区别
DeepSeek回复: 以下是主流消息队列(MQ)的对比分析,结合核心特性、适用场景和实际案例说明: 一、主流MQ对比分析 维度 Kafka RabbitMQ RocketMQ ActiveMQ所属公司Apache(LinkedIn开源)…...
模型报错infeasible,如何查看冲突约束
在使用Gurobi求解模型时,如果模型不可行(infeasible),可以通过以下步骤来查看冲突的约束或变量,帮助诊断问题: 1. 使用 computeIIS() 方法 Gurobi 提供了 computeIIS() 方法,用于计算不可行模…...
