pyside6常用控件 的 完整属性_方法_信号_槽 速查表
1.QPushButton(按钮)
| 分类 | 名称 | 说明 | 示例代码 |
|---|---|---|---|
| 属性 | text() | 获取文字 | btn.text() |
| 属性 | setText(str) | 设置文字 | btn.setText("确定") |
| 属性 | setEnabled(bool) | 启用/禁用 | btn.setEnabled(False) |
| 属性 | setIcon(QIcon) | 设置图标 | btn.setIcon(QIcon("save.png")) |
| 属性 | setShortcut(str) | 设置快捷键 | btn.setShortcut("Ctrl+S") |
| 信号 | clicked() | 单击 | btn.clicked.connect(lambda: print("clicked")) |
| 信号 | pressed() | 按下 | btn.pressed.connect(lambda: print("pressed")) |
| 信号 | released() | 释放 | btn.released.connect(lambda: print("released")) |
| 信号 | toggled(bool) | 可check时状态变化 | btn.toggled.connect(lambda c: print(c)) |
| 槽 | click() | 代码触发点击 | btn.click() |
| 槽 | animateClick(msec=100) | 动画点击 | btn.animateClick() |
| 槽 | setChecked(bool) | 设check状态 | btn.setChecked(True) |
| 槽 | toggle() | 反转check | btn.toggle() |
2. QLineEdit(单行输入框)
| 分类 | 名称 | 说明 | 示例代码 |
|---|---|---|---|
| 属性 | text() | 获取文字 | le.text() |
| 属性 | setText(str) | 设置文字 | le.setText("hello") |
| 属性 | setPlaceholderText(str) | 灰提示 | le.setPlaceholderText("请输入") |
| 属性 | setMaxLength(int) | 最大长度 | le.setMaxLength(10) |
| 属性 | setEchoMode(QLineEdit.Password) | 密码模式 | le.setEchoMode(QLineEdit.Password) |
| 属性 | setReadOnly(bool) | 只读 | le.setReadOnly(True) |
| 属性 | setAlignment(Qt.AlignCenter) | 对齐 | le.setAlignment(Qt.AlignCenter) |
| 信号 | textChanged(str) | 文字变化 | le.textChanged.connect(lambda t: print(t)) |
| 信号 | returnPressed() | 回车 | le.returnPressed.connect(self.search) |
| 信号 | editingFinished() | 编辑完成 | le.editingFinished.connect(self.save) |
| 槽 | clear() | 清空 | le.clear() |
| 槽 | selectAll() | 全选 | le.selectAll() |
| 槽 | copy() | 复制 | le.copy() |
| 槽 | cut() | 剪切 | le.cut() |
| 槽 | paste() | 粘贴 | le.paste() |
| 槽 | redo() | 重做 | le.redo() |
| 槽 | undo() | 撤销 | le.undo() |
3. QTextEdit(富文本框)
| 分类 | 名称 | 说明 | 示例代码 |
|---|---|---|---|
| 属性 | toHtml() | 获取HTML | html = te.toHtml() |
| 属性 | setHtml(str) | 设置HTML | te.setHtml("hi") |
| 属性 | toPlainText() | 获取纯文本 | txt = te.toPlainText() |
| 属性 | setPlainText(str) | 设置纯文本 | te.setPlainText("hi") |
| 属性 | setReadOnly(bool) | 只读 | te.setReadOnly(True) |
| 属性 | setLineWrapMode(QTextEdit.WidgetWidth) | 自动换行 | te.setLineWrapMode(QTextEdit.WidgetWidth) |
| 信号 | textChanged() | 内容变化 | te.textChanged.connect(lambda: print("changed")) |
| 槽 | append(str) | 尾部追加 | te.append("new line") |
| 槽 | insertHtml(str) | 插入HTML | te.insertHtml("italic") |
| 槽 | insertPlainText(str) | 插入纯文本 | te.insertPlainText("text") |
| 槽 | clear() | 清空 | te.clear() |
| 槽 | zoomIn(int=1) | 放大 | te.zoomIn() |
| 槽 | zoomOut(int=1) | 缩小 | te.zoomOut() |
| 槽 | scrollToAnchor(str) | 滚动到锚点 | te.scrollToAnchor("chap1") |
4. QPlainTextEdit(纯文本框)
| 分类 | 名称 | 说明 | 示例代码 |
|---|---|---|---|
| 属性 | toPlainText() | 获取全文 | txt = pte.toPlainText() |
| 属性 | setPlainText(str) | 设置全文 | pte.setPlainText("abc") |
| 属性 | setReadOnly(bool) | 只读 | pte.setReadOnly(True) |
| 属性 | setMaximumBlockCount(int) | 最大块数 | pte.setMaximumBlockCount(1000) |
| 属性 | blockCount() | 当前块数 | cnt = pte.blockCount() |
| 信号 | textChanged() | 内容变化 | pte.textChanged.connect(lambda: print("chg")) |
| 槽 | appendPlainText(str) | 尾部追加 | pte.appendPlainText("log") |
| 槽 | appendHtml(str) | 尾部追加HTML | pte.appendHtml("warn") |
| 槽 | clear() | 清空 | pte.clear() |
| 槽 | centerCursor() | 滚动到光标 | pte.centerCursor() |
| 槽 | selectAll() | 全选 | pte.selectAll() |
| 槽 | copy() | 复制 | pte.copy() |
| 槽 | cut() | 剪切 | pte.cut() |
| 槽 | paste() | 粘贴 | pte.paste() |
| 槽 | undo() | 撤销 | pte.undo() |
| 槽 | redo() | 重做 | pte.redo() |
| 槽 | zoomIn(int=1) | 放大 | pte.zoomIn() |
| 槽 | zoomOut(int=1) | 缩小 | pte.zoomOut() |
5. QLabel(文字/图片)
| 分类 | 名称 | 说明 | 示例代码 |
|---|---|---|---|
| 属性 | text() | 获取文字 | txt = lbl.text() |
| 属性 | setText(str) | 设置文字 | lbl.setText("hello") |
| 属性 | setPixmap(QPixmap) | 设置图片 | lbl.setPixmap(QPixmap("cat.png")) |
| 属性 | setScaledContents(bool) | 图片自动缩放 | lbl.setScaledContents(True) |
| 属性 | setAlignment(Qt.AlignCenter) | 居中 | lbl.setAlignment(Qt.AlignCenter) |
| 属性 | setWordWrap(bool) | 自动换行 | lbl.setWordWrap(True) |
| 属性 | setOpenExternalLinks(bool) | 允许打开外链 | lbl.setOpenExternalLinks(True) |
| 信号 | linkActivated(str) | 链接被点击 | lbl.linkActivated.connect(lambda u: print(u)) |
| 信号 | linkHovered(str) | 悬停链接 | lbl.linkHovered.connect(lambda u: print("hover", u)) |
| 槽 | clear() | 清空 | lbl.clear() |
| 槽 | setNum(int/float) | 显示数字 | lbl.setNum(3.14) |
6. QCheckBox(复选框)
| 分类 | 名称 | 说明 | 示例代码 |
|---|---|---|---|
| 属性 | isChecked() | 是否勾选 | chk.isChecked() |
| 属性 | setChecked(bool) | 设置勾选 | chk.setChecked(True) |
| 属性 | setTristate(bool) | 启用三态 | chk.setTristate(True) |
| 属性 | checkState() | 返回Qt.CheckState | st = chk.checkState() |
| 信号 | clicked(bool) | 点击 | chk.clicked.connect(lambda c: print(c)) |
| 信号 | toggled(bool) | 勾选变化 | chk.toggled.connect(lambda c: print(c)) |
| 信号 | stateChanged(int) | 三态变化 | chk.stateChanged.connect(lambda s: print(s)) |
| 槽 | click() | 代码点击 | chk.click() |
| 槽 | animateClick() | 动画点击 | chk.animateClick() |
| 槽 | toggle() | 反转状态 | chk.toggle() |
7. QRadioButton(单选按钮)
| 分类 | 名称 | 说明 | 示例代码 |
|---|---|---|---|
| 属性 | isChecked() | 是否选中 | rb.isChecked() |
| 属性 | setChecked(bool) | 设置选中 | rb.setChecked(True) |
| 信号 | clicked(bool) | 点击 | rb.clicked.connect(lambda c: print(c)) |
| 信号 | toggled(bool) | 选中变化 | rb.toggled.connect(lambda c: print(c)) |
| 槽 | click() | 代码点击 | rb.click() |
| 槽 | animateClick() | 动画点击 | rb.animateClick() |
8. QComboBox(下拉框)
| 分类 | 名称 | 说明 | 示例代码 |
|---|---|---|---|
| 函数 | addItem(str, userData=None) | 增加项 | cb.addItem("北京") |
| 函数 | insertItem(index, str, userData=None) | 插入项 | cb.insertItem(0, "--请选择--") |
| 函数 | removeItem(index) | 删除项 | cb.removeItem(1) |
| 函数 | clear() | 清空 | cb.clear() |
| 函数 | currentIndex() | 当前索引 | idx = cb.currentIndex() |
| 函数 | currentText() | 当前文字 | txt = cb.currentText() |
| 函数 | setCurrentIndex(index) | 设当前项 | cb.setCurrentIndex(2) |
| 函数 | setCurrentText(str) | 设当前文字 | cb.setCurrentText("上海") |
| 函数 | setEditable(bool) | 可编辑 | cb.setEditable(True) |
| 函数 | count() | 项总数 | n = cb.count() |
| 信号 | currentIndexChanged(int) | 索引变化 | cb.currentIndexChanged.connect(lambda i: print(i)) |
| 信号 | currentTextChanged(str) | 文字变化 | cb.currentTextChanged.connect(lambda t: print(t)) |
| 信号 | activated(int) | 用户选中 | cb.activated.connect(lambda i: print("user", i)) |
| 槽 | showPopup() | 下拉 | cb.showPopup() |
| 槽 | hidePopup() | 收起 | cb.hidePopup() |
| 槽 | clearEditText() | 清空编辑框 | cb.clearEditText() |
9. QSpinBox(整数选择)
| 分类 | 名称 | 说明 | 示例代码 |
|---|---|---|---|
| 函数 | setRange(min, max) | 一次设范围 | sp.setRange(0, 100) |
| 函数 | setValue(int) | 设值 | sp.setValue(50) |
| 函数 | value() | 取值 | v = sp.value() |
| 函数 | setPrefix(str) | 前缀 | sp.setPrefix("$") |
| 函数 | setSuffix(str) | 后缀 | sp.setSuffix(" kg") |
| 函数 | setSingleStep(int) | 单步 | sp.setSingleStep(5) |
| 信号 | valueChanged(int) | 值变化 | sp.valueChanged.connect(lambda v: print(v)) |
| 信号 | textChanged(str) | 文字变化 | sp.textChanged.connect(lambda t: print(t)) |
| 槽 | stepUp() | 增加一步 | sp.stepUp() |
| 槽 | stepDown() | 减少一步 | sp.stepDown() |
| 槽 | selectAll() | 全选 | sp.selectAll() |
10. QDoubleSpinBox(小数选择)
| 分类 | 名称 | 说明 | 示例代码 |
|---|---|---|---|
| 函数 | setDecimals(int) | 小数位数 | dsp.setDecimals(2) |
| 函数 | setRange(min, max) | 范围 | dsp.setRange(0.0, 99.99) |
| 函数 | setValue(float) | 设值 | dsp.setValue(3.14) |
| 函数 | value() | 取值 | v = dsp.value() |
| 函数 | setSingleStep(float) | 单步 | dsp.setSingleStep(0.1) |
| 信号 | valueChanged(float) | 值变化 | dsp.valueChanged.connect(lambda v: print(v)) |
| 信号 | textChanged(str) | 文字变化 | dsp.textChanged.connect(lambda t: print(t)) |
| 槽 | stepUp() | 增步 | dsp.stepUp() |
| 槽 | stepDown() | 减步 | dsp.stepDown() |
| 槽 | selectAll() | 全选 | dsp.selectAll() |
11. QSlider(滑块)
| 分类 | 名称 | 说明 | 示例代码 |
|---|---|---|---|
| 函数 | setRange(min, max) | 范围 | sld.setRange(0, 100) |
| 函数 | setValue(int) | 设值 | sld.setValue(50) |
| 函数 | value() | 取值 | v = sld.value() |
| 函数 | setOrientation(Qt.Horizontal) | 横向 | sld.setOrientation(Qt.Horizontal) |
| 函数 | setSingleStep(int) | 单步 | sld.setSingleStep(1) |
| 函数 | setPageStep(int) | 页步 | sld.setPageStep(10) |
| 信号 | valueChanged(int) | 值变化 | sld.valueChanged.connect(lambda v: print(v)) |
| 信号 | sliderPressed() | 按下 | sld.sliderPressed.connect(lambda: print("press")) |
| 信号 | sliderMoved(int) | 拖动 | sld.sliderMoved.connect(lambda v: print(v)) |
| 信号 | sliderReleased() | 释放 | sld.sliderReleased.connect(lambda: print("release")) |
| 槽 | triggerAction(QAbstractSlider.SliderSingleStepAdd) | 模拟步进 | sld.triggerAction(QSlider.SliderSingleStepAdd) |
12. QProgressBar(进度条)
| 分类 | 名称 | 说明 | 示例代码 |
|---|---|---|---|
| 函数 | setRange(min, max) | 范围 | pb.setRange(0, 100) |
| 函数 | setValue(int) | 设值 | pb.setValue(75) |
| 函数 | value() | 取值 | v = pb.value() |
| 函数 | reset() | 重置 | pb.reset() |
| 函数 | setTextVisible(bool) | 文字可见 | pb.setTextVisible(True) |
| 函数 | setFormat(str) | 格式 | pb.setFormat("%p%") |
| 函数 | setOrientation(Qt.Horizontal) | 方向 | pb.setOrientation(Qt.Vertical) |
| 信号 | valueChanged(int) | 值变化 | pb.valueChanged.connect(lambda v: print(v)) |
| 槽 | setValue(int) | 代码设值 | pb.setValue(90) |
13. QTabWidget(页签)
| 分类 | 名称 | 说明 | 示例代码 |
|---|---|---|---|
| 函数 | addTab(QWidget, str) → int | 加页 | idx = tab.addTab(w, "首页") |
| 函数 | insertTab(index, QWidget, str) → int | 插入 | tab.insertTab(0, w, "新页") |
| 函数 | removeTab(index) | 删页 | tab.removeTab(0) |
| 函数 | clear() | 清空 | tab.clear() |
| 函数 | currentIndex() | 当前索引 | i = tab.currentIndex() |
| 函数 | setCurrentIndex(index) | 设当前 | tab.setCurrentIndex(1) |
| 函数 | setTabText(index, str) | 改标题 | tab.setTabText(0, "改名") |
| 函数 | setTabIcon(index, QIcon) | 改图标 | tab.setTabIcon(0, QIcon("ico.png")) |
| 函数 | setTabsClosable(bool) | 显示关闭按钮 | tab.setTabsClosable(True) |
| 信号 | currentChanged(int) | 当前页变化 | tab.currentChanged.connect(lambda i: print(i)) |
| 信号 | tabCloseRequested(int) | 关闭按钮点击 | tab.tabCloseRequested.connect(lambda i: tab.removeTab(i)) |
| 槽 | setCurrentIndex(int) | 代码切页 | tab.setCurrentIndex(2) |
| 槽 | setCurrentWidget(QWidget) | 代码切页(按对象) | tab.setCurrentWidget(w) |
14. QTableWidget(表格)
| 分类 | 名称 | 说明 | 示例代码 |
|---|---|---|---|
| 函数 | setRowCount(int) | 设行数 | tbl.setRowCount(5) |
| 函数 | setColumnCount(int) | 设列数 | tbl.setColumnCount(3) |
| 函数 | setItem(row, col, QTableWidgetItem) | 设单元格 | tbl.setItem(0, 0, QTableWidgetItem("A1")) |
| 函数 | item(row, col) → QTableWidgetItem | 取单元格 | it = tbl.item(0, 0) |
| 函数 | clear() | 清空所有项 | tbl.clear() |
| 函数 | clearContents() | 只清内容留表头 | tbl.clearContents() |
| 函数 | setHorizontalHeaderLabels(list) | 设列标题 | tbl.setHorizontalHeaderLabels(["姓名", "年龄"]) |
| 函数 | setVerticalHeaderLabels(list) | 设行标题 | tbl.setVerticalHeaderLabels(["A", "B"]) |
| 函数 | insertRow(int) | 插入行 | tbl.insertRow(0) |
| 函数 | insertColumn(int) | 插入列 | tbl.insertColumn(0) |
| 函数 | removeRow(int) | 删除行 | tbl.removeRow(0) |
| 函数 | removeColumn(int) | 删除列 | tbl.removeColumn(0) |
| 函数 | selectRow(int) | 选中整行 | tbl.selectRow(2) |
| 函数 | selectColumn(int) | 选中整列 | tbl.selectColumn(1) |
| 函数 | resizeColumnsToContents() | 按内容调整列宽 | tbl.resizeColumnsToContents() |
| 函数 | resizeRowsToContents() | 按内容调整行高 | tbl.resizeRowsToContents() |
| 函数 | setSelectionBehavior(QTableWidget.SelectRows) | 整行选 | tbl.setSelectionBehavior(QTableWidget.SelectRows) |
| 函数 | setSelectionMode(QTableWidget.SingleSelection) | 单选 | tbl.setSelectionMode(QTableWidget.SingleSelection) |
| 信号 | cellClicked(int row, int col) | 单元格点击 | tbl.cellClicked.connect(lambda r, c: print(r, c)) |
| 信号 | cellDoubleClicked(int row, int col) | 双击 | tbl.cellDoubleClicked.connect(lambda r, c: print("dbl", r, c)) |
| 信号 | cellChanged(int row, int col) | 内容变化 | tbl.cellChanged.connect(lambda r, c: print("chg", r, c)) |
| 信号 | itemClicked(QTableWidgetItem) | 项点击 | tbl.itemClicked.connect(lambda it: print(it.text())) |
| 信号 | itemChanged(QTableWidgetItem) | 项变化 | tbl.itemChanged.connect(lambda it: print(it.text())) |
| 信号 | currentCellChanged(int curRow, int curCol, int prevRow, int prevCol) | 当前单元格变化 | tbl.currentCellChanged.connect(lambda cr, cc, pr, pc: print(cr, cc)) |
15. QTreeWidget(树形列表)
| 分类 | 名称 | 说明 | 示例代码 |
|---|---|---|---|
| 函数 | addTopLevelItem(QTreeWidgetItem) | 加顶层节点 | root = QTreeWidgetItem(["根"]) tree.addTopLevelItem(root) |
| 函数 | insertTopLevelItem(index, QTreeWidgetItem) | 插入顶层节点 | tree.insertTopLevelItem(0, root) |
| 函数 | takeTopLevelItem(index) → QTreeWidgetItem | 移除并返回 | item = tree.takeTopLevelItem(0) |
| 函数 | currentItem() → QTreeWidgetItem | 当前项 | it = tree.currentItem() |
| 函数 | setCurrentItem(QTreeWidgetItem) | 设当前项 | tree.setCurrentItem(root) |
| 函数 | clear() | 清空 | tree.clear() |
| 函数 | setHeaderLabels(list) | 设列标题 | tree.setHeaderLabels(["名称", "大小"]) |
| 函数 | setColumnWidth(int, int) | 设列宽 | tree.setColumnWidth(0, 150) |
| 函数 | expandItem(QTreeWidgetItem) | 展开节点 | tree.expandItem(root) |
| 函数 | collapseItem(QTreeWidgetItem) | 折叠节点 | tree.collapseItem(root) |
| 信号 | itemClicked(QTreeWidgetItem, int col) | 项点击 | tree.itemClicked.connect(lambda it, c: print(it.text(c))) |
| 信号 | itemDoubleClicked(QTreeWidgetItem, int col) | 双击 | tree.itemDoubleClicked.connect(lambda it, c: print("dbl", it.text(c))) |
| 信号 | itemChanged(QTreeWidgetItem, int col) | 项变化 | tree.itemChanged.connect(lambda it, c: print("chg", it.text(c))) |
| 信号 | currentItemChanged(QTreeWidgetItem current, QTreeWidgetItem previous) | 当前项变化 | tree.currentItemChanged.connect(lambda cur, prev: print(cur.text(0))) |
| 信号 | itemExpanded(QTreeWidgetItem) | 展开 | tree.itemExpanded.connect(lambda it: print("exp", it.text(0))) |
| 信号 | itemCollapsed(QTreeWidgetItem) | 折叠 | tree.itemCollapsed.connect(lambda it: print("col", it.text(0))) |
| 槽 | expandAll() | 全部展开 | tree.expandAll() |
| 槽 | collapseAll() | 全部折叠 | tree.collapseAll() |
16. QListWidget(列表框)
| 分类 | 名称 | 说明 | 示例代码 |
|---|---|---|---|
| 函数 | addItem(str) | 加一项 | lw.addItem("item1") |
| 函数 | insertItem(row, str) | 插入项 | lw.insertItem(0, "top") |
| 函数 | takeItem(row) → QListWidgetItem | 移除并返回 | it = lw.takeItem(0) |
| 函数 | currentRow() | 当前行 | r = lw.currentRow() |
| 函数 | setCurrentRow(int) | 设当前行 | lw.setCurrentRow(2) |
| 函数 | count() | 项总数 | n = lw.count() |
| 函数 | clear() | 清空 | lw.clear() |
| 信号 | itemClicked(QListWidgetItem) | 项点击 | lw.itemClicked.connect(lambda it: print(it.text())) |
| 信号 | itemDoubleClicked(QListWidgetItem) | 双击 | lw.itemDoubleClicked.connect(lambda it: print("dbl", it.text())) |
| 信号 | currentRowChanged(int) | 当前行变化 | lw.currentRowChanged.connect(lambda r: print(r)) |
| 信号 | itemChanged(QListWidgetItem) | 项变化 | lw.itemChanged.connect(lambda it: print("chg", it.text())) |
| 槽 | scrollToItem(QListWidgetItem) | 滚动到项 | lw.scrollToItem(it) |
| 槽 | selectAll() | 全选 | lw.selectAll() |
17. QGroupBox(分组框)
| 分类 | 名称 | 说明 | 示例代码 |
|---|---|---|---|
| 属性 | setTitle(str) | 设置标题 | gb.setTitle("基本信息") |
| 属性 | setCheckable(bool) | 启用复选框 | gb.setCheckable(True) |
| 属性 | setChecked(bool) | 设复选状态 | gb.setChecked(True) |
| 属性 | setAlignment(Qt.Alignment) | 标题对齐 | gb.setAlignment(Qt.AlignCenter) |
| 属性 | setFlat(bool) | 扁平样式 | gb.setFlat(True) |
| 信号 | clicked(bool) | 复选框点击 | gb.clicked.connect(lambda on: print("click", on)) |
| 信号 | toggled(bool) | 复选框状态变化 | gb.toggled.connect(lambda on: self.frame.setEnabled(on)) |
18. QMenu(菜单)
| 分类 | 名称 | 说明 | 示例代码 |
|---|---|---|---|
| 函数 | addAction(str) → QAction | 加文字动作 | act = menu.addAction("打开") |
| 函数 | addAction(QIcon, str) → QAction | 加图标动作 | act = menu.addAction(QIcon("open.png"), "打开") |
| 函数 | addSeparator() | 加分隔线 | menu.addSeparator() |
| 函数 | addMenu(str) → QMenu | 加子菜单 | sub = menu.addMenu("最近文件") |
| 函数 | clear() | 清空 | menu.clear() |
| 函数 | popup(QPoint) | 在指定位置弹出 | menu.popup(QCursor.pos()) |
| 信号 | triggered(QAction) | 任意动作触发 | menu.triggered.connect(lambda act: print(act.text())) |
| 信号 | hovered(QAction) | 动作悬停 | menu.hovered.connect(lambda act: print("hover", act.text())) |
19. QMenuBar(菜单栏)
| 分类 | 名称 | 说明 | 示例代码 |
|---|---|---|---|
| 函数 | addMenu(str) → QMenu | 加菜单 | fileMenu = menubar.addMenu("文件") |
| 函数 | addMenu(QMenu) | 加已有菜单 | menubar.addMenu(helpMenu) |
| 函数 | addAction(str) → QAction | 加动作 | act = menubar.addAction("关于") |
| 函数 | clear() | 清空 | menubar.clear() |
| 信号 | triggered(QAction) | 动作触发 | menubar.triggered.connect(lambda act: print(act.text())) |
| 信号 | hovered(QAction) | 动作悬停 | menubar.hovered.connect(lambda act: print("hover", act.text())) |
20. QToolBar(工具栏)
| 分类 | 名称 | 说明 | 示例代码 |
|---|---|---|---|
| 函数 | addAction(str) → QAction | 加文字按钮 | act = tb.addAction("保存") |
| 函数 | addAction(QIcon, str) → QAction | 加图标按钮 | act = tb.addAction(QIcon("save.png"), "保存") |
| 函数 | addWidget(QWidget) → QAction | 加任意控件B"]) | |
| 函数 | insertRow(int) | 插入行 | tbl.insertRow(0) |
| 函数 | insertColumn(int) | 插入列 | tbl.insertColumn(0) |
| 函数 | removeRow(int) | 删除行 | tbl.removeRow(0) |
| 函数 | removeColumn(int) | 删除列 | tbl.removeColumn(0) |
| 函数 | selectRow(int) | 选中整行 | tbl.selectRow(1) |
| 函数 | selectColumn(int) | 选中整列 | tbl.selectColumn(2) |
| 函数 | resizeColumnsToContents() | 自适应列宽 | tbl.resizeColumnsToContents() |
| 函数 | resizeRowsToContents() | 自适应行高 | tbl.resizeRowsToContents() |
| 函数 | scrollToItem(QTableWidgetItem) | 滚动到项 | tbl.scrollToItem(it) |
| 信号 | cellClicked(int, int) | 单元格点击 | tbl.cellClicked.connect(lambda r, c: print(r, c)) |
| 信号 | cellDoubleClicked(int, int) | 双击 | tbl.cellDoubleClicked.connect(lambda r, c: print("dbl", r, c)) |
| 信号 | cellChanged(int, int) | 内容变化 | tbl.cellChanged.connect(lambda r, c: print("changed", r, c)) |
| 信号 | itemClicked(QTableWidgetItem) | 项点击 | tbl.itemClicked.connect(lambda it: print(it.text())) |
| 信号 | itemChanged(QTableWidgetItem) | 项变化 | tbl.itemChanged.connect(lambda it: print(it.text())) |
| 信号 | currentCellChanged(int, int, int, int) | 当前单元格变化 | tbl.currentCellChanged.connect(lambda curR, curC, prevR, prevC: print(curR, curC)) |
20. QStatusBar(状态栏)
| 分类 | 名称 | 说明 | 示例代码 |
|---|---|---|---|
| 函数 | showMessage(str, timeout=0) | 临时消息 | self.statusBar().showMessage("就绪", 3000) |
| 函数 | clearMessage() | 清除临时消息 | self.statusBar().clearMessage() |
| 函数 | currentMessage() → str | 当前消息 | txt = self.statusBar().currentMessage() |
| 函数 | addWidget(QWidget) | 永久控件 | lbl = QLabel("版本 1.0"); self.statusBar().addWidget(lbl) |
| 函数 | removeWidget(QWidget) | 移除控件 | self.statusBar().removeWidget(lbl) |
| 信号 | messageChanged(str) | 消息变化 | self.statusBar().messageChanged.connect(lambda s: print("msg", s)) |
21. QProgressBar(进度条)
| 分类 | 名称 | 说明 | 示例代码 |
|---|---|---|---|
| 函数 | setRange(min, max) | 范围 | pb.setRange(0, 100) |
| 函数 | setValue(int) | 设值 | pb.setValue(75) |
| 函数 | value() | 取值 | v = pb.value() |
| 函数 | reset() | 重置 | pb.reset() |
| 函数 | setTextVisible(bool) | 文字可见 | pb.setTextVisible(True) |
| 函数 | setFormat(str) | 格式 | pb.setFormat("%p%") |
| 函数 | setOrientation(Qt.Horizontal) | 方向 | pb.setOrientation(Qt.Vertical) |
| 信号 | valueChanged(int) | 值变化 | pb.valueChanged.connect(lambda v: print(v)) |
| 槽 | setValue(int) | 代码设值 | pb.setValue(90) |
22. QSlider(滑块)
| 分类 | 名称 | 说明 | 示例代码 |
|---|---|---|---|
| 函数 | setRange(min, max) | 范围 | sld.setRange(0, 100) |
| 函数 | setValue(int) | 设值 | sld.setValue(50) |
| 函数 | value() | 取值 | v = sld.value() |
| 函数 | setOrientation(Qt.Horizontal) | 横/竖 | sld.setOrientation(Qt.Horizontal) |
| 函数 | setSingleStep(int) | 单步 | sld.setSingleStep(1) |
| 函数 | setPageStep(int) | 页步 | sld.setPageStep(10) |
| 信号 | valueChanged(int) | 值变化 | sld.valueChanged.connect(lambda v: print(v)) |
| 信号 | sliderPressed() | 按下 | sld.sliderPressed.connect(lambda: print("press")) |
| 信号 | sliderMoved(int) | 拖动 | sld.sliderMoved.connect(lambda v: print(v)) |
| 信号 | sliderReleased() | 释放 | sld.sliderReleased.connect(lambda: print("release")) |
| 槽 | triggerAction(QAbstractSlider.SliderSingleStepAdd) | 模拟步进 | sld.triggerAction(QSlider.SliderSingleStepAdd) |
23. QDial(旋钮)
| 分类 | 名称 | 说明 | 示例代码 |
|---|---|---|---|
| 函数 | setRange(min, max) | 范围 | dial.setRange(0, 100) |
| 函数 | setValue(int) | 设值 | dial.setValue(50) |
| 函数 | value() | 取值 | v = dial.value() |
| 函数 | setNotchesVisible(bool) | 刻度可见 | dial.setNotchesVisible(True) |
| 函数 | setNotchTarget(double) | 刻度间隔 | dial.setNotchTarget(10) |
| 信号 | valueChanged(int) | 值变化 | dial.valueChanged.connect(lambda v: print(v)) |
| 信号 | sliderPressed() | 按下 | dial.sliderPressed.connect(lambda: print("press")) |
| 信号 | sliderMoved(int) | 拖动 | dial.sliderMoved.connect(lambda v: print(v)) |
| 信号 | sliderReleased() | 释放 | dial.sliderReleased.connect(lambda: print("release")) |
| 槽 | triggerAction(QAbstractSlider.SliderSingleStepAdd) | 模拟步进 | dial.triggerAction(QDial.SliderSingleStepAdd) |
24. QScrollBar(滚动条)
| 分类 | 名称 | 说明 | 示例代码 |
|---|---|---|---|
| 函数 | setRange(min, max) | 范围 | sb.setRange(0, 255) |
| 函数 | setValue(int) | 设值 | sb.setValue(128) |
| 函数 | value() | 取值 | v = sb.value() |
| 函数 | setSingleStep(int) | 单步 | sb.setSingleStep(1) |
| 函数 | setPageStep(int) | 页步 | sb.setPageStep(10) |
| 信号 | valueChanged(int) | 值变化 | sb.valueChanged.connect(lambda v: print(v)) |
| 信号 | sliderPressed() | 按下 | sb.sliderPressed.connect(lambda: print("press")) |
| 信号 | sliderMoved(int) | 拖动 | sb.sliderMoved.connect(lambda v: print(v)) |
| 信号 | sliderReleased() | 释放 | sb.sliderReleased.connect(lambda: print("release")) |
| 槽 | triggerAction(QAbstractSlider.SliderSingleStepAdd) | 模拟步进 | sb.triggerAction(QScrollBar.SliderSingleStepAdd) |
25. QTabBar(独立页签栏)
| 分类 | 名称 | 说明 | 示例代码 |
|---|---|---|---|
| 函数 | addTab(str) → int | 加页签 | idx = tabbar.addTab("新标签") |
| 函数 | insertTab(index, str) → int | 插入 | idx = tabbar.insertTab(0, "首页") |
| 函数 | removeTab(index) | 删除 | tabbar.removeTab(0) |
| 函数 | setTabText(index, str) | 改文字 | tabbar.setTabText(0, "改名") |
| 函数 | setTabIcon(index, QIcon) | 改图标 | tabbar.setTabIcon(0, QIcon("ico.png")) |
| 函数 | currentIndex() | 当前索引 | i = tabbar.currentIndex() |
| 函数 | setCurrentIndex(index) | 设当前 | tabbar.setCurrentIndex(1) |
| 函数 | setTabsClosable(bool) | 显示关闭按钮 | tabbar.setTabsClosable(True) |
| 函数 | moveTab(int from, int to) | 移动页签 | tabbar.moveTab(1, 0) |
| 信号 | currentChanged(int) | 当前变化 | tabbar.currentChanged.connect(lambda i: print(i)) |
| 信号 | tabCloseRequested(int) | 关闭按钮点击 | tabbar.tabCloseRequested.connect(lambda i: tabbar.removeTab(i)) |
| 信号 | tabMoved(int from, int to) | 拖拽移动 | tabbar.tabMoved.connect(lambda f, t: print(f"move {f}->{t}")) |
| 槽 | setCurrentIndex(int) | 代码切页 | tabbar.setCurrentIndex(2) |
26. QFontComboBox(字体选择)
| 分类 | 名称 | 说明 | 示例代码 |
|---|---|---|---|
| 函数 | setCurrentFont(QFont) | 设字体 | fcb.setCurrentFont(QFont("Consolas", 10)) |
| 函数 | currentFont() → QFont | 取字体 | f = fcb.currentFont() |
| 函数 | setFontFilters(QFontComboBox.MonospacedFonts) | 过滤器 | fcb.setFontFilters(QFontComboBox.MonospacedFonts) |
| 函数 | setWritingSystem(QFontDatabase.Latin) | 书写系统 | fcb.setWritingSystem(QFontDatabase.Latin) |
| 信号 | currentFontChanged(QFont) | 字体变化 | fcb.currentFontChanged.connect(lambda f: print(f.family())) |
27. QCalendarWidget(日历)
| 分类 | 名称 | 说明 | 示例代码 |
|---|---|---|---|
| 函数 | setSelectedDate(QDate) | 设选中日期 | cal.setSelectedDate(QDate.currentDate()) |
| 函数 | selectedDate() → QDate | 取选中日期 | d = cal.selectedDate() |
| 函数 | setDateRange(minQDate, maxQDate) | 可选范围 | cal.setDateRange(QDate(2020, 1, 1), QDate(2030, 12, 31)) |
| 函数 | setFirstDayOfWeek(Qt.DayOfWeek) | 每周首日 | cal.setFirstDayOfWeek(Qt.Monday) |
| 函数 | setGridVisible(bool) | 网格可见 | cal.setGridVisible(True) |
| 函数 | setNavigationBarVisible(bool) | 导航条可见 | cal.setNavigationBarVisible(False) |
| 信号 | clicked(QDate) | 点击日期 | cal.clicked.connect(lambda d: print(d.toString())) |
| 信号 | activated(QDate) | 回车/双击日期 | cal.activated.connect(lambda d: print("activate", d.toString())) |
| 信号 | selectionChanged() | 选中变化 | cal.selectionChanged.connect(lambda: print("sel")) |
| 信号 | currentPageChanged(int, int) | 年月切换 | cal.currentPageChanged.connect(lambda y, m: print(y, m)) |
28. QKeySequenceEdit(快捷键录入)
| 分类 | 名称 | 说明 | 示例代码 |
|---|---|---|---|
| 函数 | setKeySequence(QKeySequence) | 设序列 | kse.setKeySequence(QKeySequence("Ctrl+S")) |
| 函数 | keySequence() → QKeySequence | 取序列 | ks = kse.keySequence() |
| 函数 | clear() | 清空 | kse.clear() |
| 信号 | keySequenceChanged(QKeySequence) | 序列变化 | kse.keySequenceChanged.connect(lambda ks: print(ks.toString())) |
| 信号 | editingFinished() | 编辑完成 | kse.editingFinished.connect(lambda: print("done")) |
29. QLCDNumber(数码管)
| 分类 | 名称 | 说明 | 示例代码 |
|---|---|---|---|
| 函数 | display(str/int/float) | 显示值 | lcd.display(123) or lcd.display("123") or lcd.display(3.14) |
| 函数 | setDigitCount(int) | 位数 | lcd.setDigitCount(5) |
| 函数 | setMode(QLCDNumber.Dec) | 模式(Dec/Hex/Bin/Oct) | lcd.setMode(QLCDNumber.Hex) |
| 函数 | setSegmentStyle(QLCDNumber.Filled) | 段样式(Outline/Filled/Flat) | lcd.setSegmentStyle(QLCDNumber.Filled) |
| 属性 | smallDecimalPoint | 小数点占一位 | lcd.setSmallDecimalPoint(True) |
| 信号 | overflow() | 溢出 | lcd.overflow.connect(lambda: print("overflow")) |
| 槽 | display(...) | 同上 | lcd.display(999) |
30. QTextBrowser(只读富文本浏览)
| 分类 | 名称 | 说明 | 示例代码 |
|---|---|---|---|
| 函数 | setSource(QUrl) | 加载资源 | browser.setSource(QUrl("qrc:/help.html")) |
| 函数 | backward() | 后退 | browser.backward() |
| 函数 | forward() | 前进 | browser.forward() |
| 函数 | reload() | 重载 | browser.reload() |
| 函数 | home() | 首页 | browser.home() |
| 信号 | anchorClicked(QUrl) | 链接点击 | browser.anchorClicked.connect(lambda u: print(u.toString())) |
| 信号 | backwardAvailable(bool) | 后退可用 | browser.backwardAvailable.connect(lambda b: print("back", b)) |
| 信号 | forwardAvailable(bool) | 前进可用 | browser.forwardAvailable.connect(lambda b: print("fwd", b)) |
| 信号 | highlighted(QUrl) | 悬停链接 | browser.highlighted.connect(lambda u: print("hover", u.toString())) |
31. QGraphicsView(图形视图)
| 分类 | 名称 | 说明 | 示例代码 |
|---|---|---|---|
| 函数 | setScene(QGraphicsScene) | 设场景 | view.setScene(scene) |
| 函数 | scene() → QGraphicsScene | 取场景 | s = view.scene() |
| 函数 | fitInView(QRectF, Qt.AspectRatioMode) | 自适应 | view.fitInView(item, Qt.KeepAspectRatio) |
| 函数 | scale(sx, sy) | 缩放 | view.scale(1.2, 1.2) |
| 函数 | rotate(angle) | 旋转 | view.rotate(90) |
| 函数 | translate(dx, dy) | 平移 | view.translate(10, 10) |
| 函数 | centerOn(QPointF) | 中心对准 | view.centerOn(item) |
| 信号 | rubberBandChanged(QRect, QPointF, QPointF) | 橡皮框变化 | view.rubberBandChanged.connect(lambda rect, fromScene, toScene: print(rect)) |
| 槽 | render(...) | 导出图片 | view.render(painter, target, source) |
32. QSplitter(分割条)
| 分类 | 名称 | 说明 | 示例代码 |
|---|---|---|---|
| 函数 | addWidget(QWidget) | 加控件 | sp.addWidget(w1) |
| 函数 | insertWidget(index, QWidget) | 插入控件 | sp.insertWidget(0, w2) |
| 函数 | setSizes(list) | 设比例 | sp.setSizes([100, 200]) |
| 函数 | sizes() → list[int] | 取比例 | lst = sp.sizes() |
| 函数 | setCollapsible(index, bool) | 允许折叠 | sp.setCollapsible(0, False) |
| 函数 | setOrientation(Qt.Orientation) | 横/竖 | sp.setOrientation(Qt.Vertical) |
| 信号 | splitterMoved(pos, index) | 分割条移动 | sp.splitterMoved.connect(lambda pos, idx: print(pos, idx)) |
| 槽 | moveSplitter(pos, index) | 代码移动 | sp.moveSplitter(150, 0) |
33. QScrollArea(滚动区域)
| 分类 | 名称 | 说明 | 示例代码 |
|---|---|---|---|
| 函数 | setWidget(QWidget) | 设内容控件 | scroll.setWidget(w) |
| 函数 | widget() → QWidget | 取内容控件 | w = scroll.widget() |
| 函数 | takeWidget() → QWidget | 移除并返回 | w = scroll.takeWidget() |
| 函数 | setWidgetResizable(bool) | 内容自适应 | scroll.setWidgetResizable(True) |
| 函数 | setAlignment(Qt.Alignment) | 对齐 | scroll.setAlignment(Qt.AlignCenter) |
| 信号 | 无专用信号 |
34. QToolBox(折叠工具箱)
| 分类 | 名称 | 说明 | 示例代码 |
|---|---|---|---|
| 函数 | addItem(QWidget, str) → int | 加页 | idx = tb.addItem(w, "页1") |
| 函数 | insertItem(index, QWidget, str) → int | 插入 | idx = tb.insertItem(0, w, "首页") |
| 函数 | removeItem(index) | 删除页 | tb.removeItem(0) |
| 函数 | setItemText(index, str) | 改标题 | tb.setItemText(0, "改名") |
| 函数 | setItemIcon(index, QIcon) | 改图标 | tb.setItemIcon(0, QIcon("ico.png")) |
| 函数 | currentIndex() | 当前索引 | i = tb.currentIndex() |
| 函数 | setCurrentIndex(index) | 设当前 | tb.setCurrentIndex(1) |
| 信号 | currentChanged(int) | 当前页变化 | tb.currentChanged.connect(lambda i: print(i)) |
35. QFrame(分割线/装饰)
| 分类 | 名称 | 说明 | 示例代码 |
|---|---|---|---|
| 属性 | frameShape | 形状(Box/HLine/VLine/Panel/WinPanel) | frm.setFrameShape(QFrame.HLine) |
| 属性 | frameShadow | 阴影(Plain/Raised/Sunken) | frm.setFrameShadow(QFrame.Sunken) |
| 属性 | lineWidth | 线宽 | frm.setLineWidth(2) |
| 属性 | midLineWidth | 中线宽 | frm.setMidLineWidth(0) |
| 函数 | setFrameShape(QFrame.Shape) | 设形状 | frm.setFrameShape(QFrame.HLine) |
| 函数 | setFrameShadow(QFrame.Shadow) | 设阴影 | frm.setFrameShadow(QFrame.Sunken) |
| 函数 | setLineWidth(int) | 设线宽 | frm.setLineWidth(3) |
| 信号 | 无 |
36. QWidget(通用窗口/容器)
| 分类 | 名称 | 说明 | 示例代码 |
|---|---|---|---|
| 函数 | setWindowTitle(str) | 设标题 | w.setWindowTitle("MyApp") |
| 函数 | setEnabled(bool) | 启用/禁用 | w.setEnabled(False) |
| 函数 | setVisible(bool) | 显示/隐藏 | w.setVisible(True) |
| 函数 | show() / hide() / raise() / lower() | 显示/隐藏/置顶/置底 | w.show() |
| 函数 | close() | 关闭窗口 | w.close() |
| 函数 | setLayout(QLayout) | 设布局 | w.setLayout(vbox) |
| 函数 | setStyleSheet(str) | 设样式表 | w.setStyleSheet("background:#333;") |
| 函数 | setFixedSize(w, h) | 固定尺寸 | w.setFixedSize(400, 300) |
| 函数 | setMinimumSize(w, h) / setMaximumSize(w, h) | 最小/最大尺寸 | w.setMinimumSize(200, 150) |
| 属性 | windowTitle / enabled / visible / styleSheet | 同上 | print(w.windowTitle()) |
| 信号 | 无专用信号 |
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 程序员小航
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果