mirror of
https://github.com/muziing/PySide6-Code-Tutorial.git
synced 2025-01-30 14:22:53 +08:00
[pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
This commit is contained in:
parent
460e376a02
commit
64704af509
@ -37,7 +37,9 @@ class MyWidget(QtWidgets.QWidget):
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
app = QtWidgets.QApplication(sys.argv) # 创建APP,将运行脚本时(可能的)的其他参数传给Qt以初始化
|
||||
app = QtWidgets.QApplication(
|
||||
sys.argv
|
||||
) # 创建APP,将运行脚本时(可能的)的其他参数传给Qt以初始化
|
||||
widget = MyWidget() # 实例化一个MyWidget类对象
|
||||
widget.show() # 显示窗口
|
||||
sys.exit(app.exec()) # 正常退出APP:app.exec()关闭app,sys.exit()退出进程
|
||||
|
@ -57,7 +57,9 @@ class MyWidget(QtWidgets.QWidget):
|
||||
|
||||
# 设置为自定义图案光标
|
||||
pixmap = QtGui.QPixmap("../../Resources/Icons/snowflake_128px.ico").scaled(52, 52)
|
||||
my_cursor = QtGui.QCursor(pixmap, 26, 26) # 以图片像素点位置26,26为热点(光标实际所在位置坐标)
|
||||
my_cursor = QtGui.QCursor(
|
||||
pixmap, 26, 26
|
||||
) # 以图片像素点位置26,26为热点(光标实际所在位置坐标)
|
||||
self.setCursor(my_cursor)
|
||||
|
||||
# 设置label中的光标为Qt内置的其他光标
|
||||
|
@ -74,7 +74,9 @@ class MyWidget(QtWidgets.QWidget):
|
||||
pos_layout = QtWidgets.QFormLayout()
|
||||
pos_layout.addRow(QtWidgets.QLabel("光标当前位于:"), self.pos_line_edit)
|
||||
pos_layout.addRow(QtWidgets.QLabel("将光标设置到:"), self.set_pos_spinbox)
|
||||
pos_layout.addRow(QtWidgets.QLabel(f"{self.point.toTuple()}处的光标位于"), self.pos_at_label)
|
||||
pos_layout.addRow(
|
||||
QtWidgets.QLabel(f"{self.point.toTuple()}处的光标位于"), self.pos_at_label
|
||||
)
|
||||
pos_groupbox.setLayout(pos_layout)
|
||||
|
||||
# ================ 光标移动风格 =======================
|
||||
|
@ -77,7 +77,9 @@ class MyWidget(QtWidgets.QWidget):
|
||||
self.scroll_area.widget().resize(200, 400) # 尺寸小于滚动区域尺寸
|
||||
|
||||
# 设置对齐方式
|
||||
self.scroll_area.setAlignment(Qt.AlignHCenter | Qt.AlignBottom) # 设置为水平居中、垂直靠底部对齐
|
||||
self.scroll_area.setAlignment(
|
||||
Qt.AlignHCenter | Qt.AlignBottom
|
||||
) # 设置为水平居中、垂直靠底部对齐
|
||||
|
||||
def test_02(self) -> None:
|
||||
"""测试尺寸控制、确保可见功能"""
|
||||
|
@ -68,7 +68,9 @@ class MyWidget(QtWidgets.QWidget):
|
||||
"""测试自动换行功能"""
|
||||
|
||||
# 设置换行模式
|
||||
self.pte.setLineWrapMode(QtWidgets.QPlainTextEdit.LineWrapMode.WidgetWidth) # 自动换行(默认值)
|
||||
self.pte.setLineWrapMode(
|
||||
QtWidgets.QPlainTextEdit.LineWrapMode.WidgetWidth
|
||||
) # 自动换行(默认值)
|
||||
# self.pte.setLineWrapMode(QtWidgets.QPlainTextEdit.LineWrapMode.NoWrap) # 关闭自动换行
|
||||
print(self.pte.lineWrapMode()) # 获取换行模式
|
||||
|
||||
|
@ -23,7 +23,9 @@ class MyWidget(QtWidgets.QWidget):
|
||||
self.pte = QtWidgets.QPlainTextEdit(self)
|
||||
self.pte.resize(350, 400)
|
||||
self.pte.move(150, 80)
|
||||
self.pte.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOn) # 始终显示滚动条
|
||||
self.pte.setVerticalScrollBarPolicy(
|
||||
QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOn
|
||||
) # 始终显示滚动条
|
||||
|
||||
# 用于限制line_num_label位置尺寸的父控件
|
||||
line_num_widget = QtWidgets.QWidget(self)
|
||||
|
@ -50,7 +50,9 @@ class MyWidget(QtWidgets.QWidget):
|
||||
btn.clicked.connect(lambda: print(spin_box.text())) # type: ignore
|
||||
|
||||
# =================================== 文本对齐方式 ===================================
|
||||
spin_box.setAlignment(QtCore.Qt.AlignmentFlag.AlignHCenter) # 更改为水平居中对齐,默认为左对齐
|
||||
spin_box.setAlignment(
|
||||
QtCore.Qt.AlignmentFlag.AlignHCenter
|
||||
) # 更改为水平居中对齐,默认为左对齐
|
||||
|
||||
# ==================================== 千分符 ===================================
|
||||
spin_box.setGroupSeparatorShown(True) # 显示千分符
|
||||
|
@ -58,7 +58,9 @@ class MyWidget(QtWidgets.QWidget):
|
||||
spinbox.setSuffix(" cm") # 设置后缀
|
||||
# spinbox.setPrefix("$ ") # 设置前缀
|
||||
print(f"完整文本为{spinbox.text()}") # 获取文本时会获取到包含前后缀的完整文本
|
||||
print(f"数值为{spinbox.text().removesuffix(spinbox.suffix())}") # Python3.9提供的移除后缀方法
|
||||
print(
|
||||
f"数值为{spinbox.text().removesuffix(spinbox.suffix())}"
|
||||
) # Python3.9提供的移除后缀方法
|
||||
print(f"数值为{spinbox.cleanText()}")
|
||||
|
||||
|
||||
|
@ -36,7 +36,9 @@ class MyWidget(QtWidgets.QWidget):
|
||||
# dte = QtWidgets.QDateTimeEdit(self) # 创建空的日期时间编辑器
|
||||
# dte = QtWidgets.QDateTimeEdit(my_time, self) # 使用QTime初始化
|
||||
# dte = QtWidgets.QDateTimeEdit(my_date, self) # 使用QDate初始化
|
||||
dte = QtWidgets.QDateTimeEdit(QtCore.QDateTime.currentDateTime(), self) # 使用QDateTime初始化
|
||||
dte = QtWidgets.QDateTimeEdit(
|
||||
QtCore.QDateTime.currentDateTime(), self
|
||||
) # 使用QDateTime初始化
|
||||
|
||||
dte.move(200, 200)
|
||||
|
||||
|
@ -87,7 +87,9 @@ class MyWidget(QtWidgets.QWidget):
|
||||
cbb.setEditText("000") # 将当前文本设置为00,而不影响其他条目
|
||||
|
||||
# 设置尺寸调整策略
|
||||
cbb.setSizeAdjustPolicy(QtWidgets.QComboBox.SizeAdjustPolicy.AdjustToContents) # 总是根据内容调整尺寸
|
||||
cbb.setSizeAdjustPolicy(
|
||||
QtWidgets.QComboBox.SizeAdjustPolicy.AdjustToContents
|
||||
) # 总是根据内容调整尺寸
|
||||
|
||||
# 限制最小字符数
|
||||
cbb.setMinimumContentsLength(3)
|
||||
|
@ -29,7 +29,9 @@ class MyWidget(QtWidgets.QWidget):
|
||||
fcb = QtWidgets.QFontComboBox()
|
||||
|
||||
# 创建示例文本并连接信号,当用户选择字体改变时,对应改变示例文本的字体
|
||||
text_label = QtWidgets.QLabel("我能吞下玻璃而不伤身体\nThe quick brown fox jumps over the lazy dog.")
|
||||
text_label = QtWidgets.QLabel(
|
||||
"我能吞下玻璃而不伤身体\nThe quick brown fox jumps over the lazy dog."
|
||||
)
|
||||
fcb.currentFontChanged.connect(text_label.setFont) # type: ignore
|
||||
|
||||
# 使用布局管理器布局界面
|
||||
|
@ -56,7 +56,9 @@ class MyWidget(QtWidgets.QWidget):
|
||||
fcb = QtWidgets.QFontComboBox()
|
||||
|
||||
# 创建示例文本并连接信号,当用户选择字体改变时,对应改变示例文本的字体
|
||||
text_label = QtWidgets.QLabel("我能吞下玻璃而不伤身体。\nThe quick brown fox jumps over the lazy dog.")
|
||||
text_label = QtWidgets.QLabel(
|
||||
"我能吞下玻璃而不伤身体。\nThe quick brown fox jumps over the lazy dog."
|
||||
)
|
||||
fcb.currentFontChanged.connect(text_label.setFont) # type: ignore
|
||||
|
||||
# 使用布局管理器布局界面
|
||||
@ -66,7 +68,9 @@ class MyWidget(QtWidgets.QWidget):
|
||||
self.setLayout(layout)
|
||||
|
||||
# ======================== 设置显示字体 ========================
|
||||
fcb.setDisplayFont("Arial", QtGui.QFont("Arial Black", italic=True)) # 注意在本地测试时使用本机已安装的字体
|
||||
fcb.setDisplayFont(
|
||||
"Arial", QtGui.QFont("Arial Black", italic=True)
|
||||
) # 注意在本地测试时使用本机已安装的字体
|
||||
# 此时在combobox中的"Arial"条目是用黑体斜体显示的,而非原来的Arial字体
|
||||
|
||||
# ======================== 设置示例文本、书写系统 ========================
|
||||
|
@ -28,8 +28,12 @@ class MyWidget(QtWidgets.QWidget):
|
||||
"""配置对话框属性功能"""
|
||||
self.dialog.setAcceptMode(QtWidgets.QFileDialog.AcceptMode.AcceptOpen) # 打开模式
|
||||
self.dialog.setFileMode(QtWidgets.QFileDialog.FileMode.ExistingFiles) # 选择现有文件
|
||||
self.dialog.setLabelText(QtWidgets.QFileDialog.DialogLabel.Accept, "选择") # 为「接受」按键指定文本
|
||||
self.dialog.setLabelText(QtWidgets.QFileDialog.DialogLabel.Reject, "取消") # 为「拒绝」按键指定文本
|
||||
self.dialog.setLabelText(
|
||||
QtWidgets.QFileDialog.DialogLabel.Accept, "选择"
|
||||
) # 为「接受」按键指定文本
|
||||
self.dialog.setLabelText(
|
||||
QtWidgets.QFileDialog.DialogLabel.Reject, "取消"
|
||||
) # 为「拒绝」按键指定文本
|
||||
|
||||
def setup_ui(self) -> None:
|
||||
"""设置界面"""
|
||||
|
@ -38,14 +38,20 @@ class MyWidget(QtWidgets.QWidget):
|
||||
def setup_dialog(self) -> None:
|
||||
"""设置文件对话框"""
|
||||
|
||||
self.dialog.setAcceptMode(QtWidgets.QFileDialog.AcceptMode.AcceptSave) # 文件对话框用于保存文件
|
||||
self.dialog.setAcceptMode(
|
||||
QtWidgets.QFileDialog.AcceptMode.AcceptSave
|
||||
) # 文件对话框用于保存文件
|
||||
|
||||
# 默认后缀名
|
||||
self.dialog.setDefaultSuffix("txt") # 设置默认后缀名
|
||||
|
||||
# 标签文本
|
||||
self.dialog.setLabelText(QtWidgets.QFileDialog.DialogLabel.Accept, "保存") # 将Accept按钮文本设置为保存
|
||||
self.dialog.setLabelText(QtWidgets.QFileDialog.DialogLabel.Reject, "取消") # 将Reject标签文本设置为取消
|
||||
self.dialog.setLabelText(
|
||||
QtWidgets.QFileDialog.DialogLabel.Accept, "保存"
|
||||
) # 将Accept按钮文本设置为保存
|
||||
self.dialog.setLabelText(
|
||||
QtWidgets.QFileDialog.DialogLabel.Reject, "取消"
|
||||
) # 将Reject标签文本设置为取消
|
||||
|
||||
def setup_ui(self) -> None:
|
||||
"""设置界面"""
|
||||
|
@ -70,7 +70,9 @@ class MyWidget(QWidget):
|
||||
"""测试QMessageBox的静态方法"""
|
||||
|
||||
self.about_btn.clicked.connect(
|
||||
lambda: QMessageBox.about(self, "关于此程序", "本程序为PySide6 Code Tutorial中的一个案例")
|
||||
lambda: QMessageBox.about(
|
||||
self, "关于此程序", "本程序为PySide6 Code Tutorial中的一个案例"
|
||||
)
|
||||
) # type: ignore
|
||||
self.about_qt_btn.clicked.connect(lambda: QMessageBox.aboutQt(self)) # type: ignore
|
||||
|
||||
@ -99,7 +101,10 @@ class MyWidget(QWidget):
|
||||
def show_warn_dlg() -> None:
|
||||
"""self.warning_btn对应的槽函数"""
|
||||
result = QMessageBox.warning(
|
||||
self, "静态方法-警告", "警告:直接退出将不会保存修改", QMessageBox.StandardButton.Discard
|
||||
self,
|
||||
"静态方法-警告",
|
||||
"警告:直接退出将不会保存修改",
|
||||
QMessageBox.StandardButton.Discard,
|
||||
)
|
||||
self.label.setText(f"用户选择了:{user_result_dict[result]}")
|
||||
self.label.adjustSize()
|
||||
|
Loading…
x
Reference in New Issue
Block a user