|
| 1 | +import sys |
| 2 | + |
| 3 | +from PySide6 import QtGui, QtWidgets |
| 4 | + |
| 5 | +""" |
| 6 | +QMessageBox 文本与图标 |
| 7 | +
|
| 8 | +=========================================文本========================================== |
| 9 | +信息提示框中可以设置文本,根据重要程度、详细程度不同, |
| 10 | +可以使用不同的API分别设置普通文本、详情文本、信息文本,在界面显示中样式会有所区别(取决于平台) |
| 11 | +
|
| 12 | +普通文本,信息框提示中的主要文本内容: |
| 13 | +.setText(text:str) |
| 14 | +.text() -> str |
| 15 | +
|
| 16 | +详情文本,会被显示在详情区域,用户需要点击“显示细节”按钮才会展示 |
| 17 | +注意text会被解析为纯文本 |
| 18 | +.setDetailedText(text: str) |
| 19 | +.detailedText() -> str |
| 20 | +
|
| 21 | +信息文本,用于扩展text()以向用户提供更多信息。在MacOS上此文本会以小系统字体显示在text()下方 |
| 22 | +而对于其他平台,只会简单地附加到现有文本中 |
| 23 | +.setInformativeText(text: str) |
| 24 | +.informativeText() -> str |
| 25 | +
|
| 26 | +=========================================图标========================================== |
| 27 | +信息提示框可以在内部设置一个图标,该图标会出现在文本旁(而不同于一般的设置窗口图标) |
| 28 | +设置图标有两种方式,其一为设置QMessageBox提供的标准图标,其二为自定义位图: |
| 29 | +
|
| 30 | +为消息提示框设置标准图标(警告图标、错误图标等),而非用户指定的QIcon对象,其样式由当前GUI样式风格决定 |
| 31 | +
|
| 32 | +.setIcon(icon: QMessageBox.Icon) 为消息提示框设置图标,默认为QMessageBox.NoIcon |
| 33 | +.icon() -> QMessageBox.Icon 获取当前设置的标准图标 |
| 34 | +
|
| 35 | +QMessageBox.Icon枚举值详见本目录下对应附录小节 |
| 36 | +
|
| 37 | +如要设置自定义图标,则应使用setIconPixmap方法: |
| 38 | +.setIconPixmap(icon: QPixmap) 设置自定义图标,需要为位图形式 |
| 39 | +.iconPixmap() -> QPixmap 获取设置的图标 |
| 40 | +
|
| 41 | +""" |
| 42 | + |
| 43 | + |
| 44 | +class MyWidget(QtWidgets.QWidget): |
| 45 | + def __init__(self, *args, **kwargs): |
| 46 | + super().__init__(*args, **kwargs) |
| 47 | + self.setWindowTitle("QMessage-文本与图标") |
| 48 | + self.resize(800, 600) |
| 49 | + self.setup_ui() |
| 50 | + |
| 51 | + def setup_ui(self) -> None: |
| 52 | + """设置界面与对话框""" |
| 53 | + |
| 54 | + message_box = QtWidgets.QMessageBox(self) |
| 55 | + message_box.setWindowTitle("MessageBox的窗口标题") |
| 56 | + |
| 57 | + # 设置文本 |
| 58 | + message_box.setText("信息提示框中的一般文本") |
| 59 | + message_box.setDetailedText("这是一段详情文本") |
| 60 | + message_box.setInformativeText("这是一段信息文本") |
| 61 | + |
| 62 | + # 设置图标 |
| 63 | + # message_box.setIcon(QtWidgets.QMessageBox.Information) # 设置标准图标 |
| 64 | + my_icon = QtGui.QPixmap("../../../Resources/Icons/Qt_for_Python_128px.png") |
| 65 | + message_box.setIconPixmap(my_icon) # 设置自定义图标 |
| 66 | + |
| 67 | + pop_btn = QtWidgets.QPushButton("弹出对话框", self) |
| 68 | + pop_btn.move(200, 200) |
| 69 | + pop_btn.clicked.connect(message_box.open) # type: ignore |
| 70 | + |
| 71 | + |
| 72 | +if __name__ == "__main__": |
| 73 | + app = QtWidgets.QApplication(sys.argv) |
| 74 | + window = MyWidget() |
| 75 | + window.show() |
| 76 | + sys.exit(app.exec()) |
0 commit comments