常用控件(Widgets)- 输入类

PySide6 提供了丰富的控件来满足不同的交互需求。由于控件的种类比较多,我们不能再一篇文章进行介绍,我把它分成3个部分,今天主要介绍输入类控件。

输入控件

PySide中具有输入功能的控件是超级多的,我列了一个表可以快速了解有哪些控件具有输入功能,以及其输入功能的一些细节。

控件名称

主要用途

输入类型

典型应用场景

QLineEdit

单行文本输入

文本

用户名、搜索框、短文本输入

QTextEdit

多行富文本输入

多行文本(支持格式)

邮件正文、文档编辑、长备注

QPlainTextEdit

多行纯文本输入

多行文本(纯文本)

代码编辑器、日志显示、纯文本笔记

QSpinBox

整数输入

数值(整数)

年龄、数量、次数等整数设置

QDoubleSpinBox

浮点数输入

数值(浮点数)

价格、温度、百分比等带小数点的数值

QComboBox

下拉选择

预定义选项

国家/地区选择、类别选择、枚举值

QCheckBox

复选框(多选)

布尔值或多项选择

选项开关、多选设置(如“记住密码”)

QRadioButton

单选按钮(互斥选择)

枚举值(多选一)

性别选择、模式切换(如“低/中/高”)

QSlider

滑块调节

数值(连续或离散)

音量控制、亮度调节、范围选择

QInputDialog

快速输入对话框

多种类型(文本、数字、选项)

快速获取用户单项输入,如重命名、设置值

文本输入控件

这类控件用于处理各种文本输入。

  • QLineEdit:单行文本输入框

常用控件(Widgets)- 输入类

QLineEdit 例程

这是最基础的文本输入控件,适合输入简短内容。你可以通过 text()方法获取输入内容,通过 setText()设置内容。它支持一些实用属性:

    • setPlaceholderText(“请输入用户名”):设置占位符文本,提示用户该输入什么。
    • setEchoMode(QLineEdit.Password):设置回显模式,常用于密码输入,用星号隐藏内容。
    • 通过 setValidator()方法设置验证器,可以限制输入格式,例如只允许输入数字。

QLineEdit例程:

import sys
from PySide6.QtWidgets import QApplication, QWidget, QVBoxLayout, QLabel, QLineEdit

class SimpleLineEditDemo(QWidget):
    def __init__(self):
        super().__init__()
        self.line_edit = None
        self.label = None
        self.initUI()

    def initUI(self):
        # 设置窗口属性
        self.setWindowTitle('QLineEdit 简单示例')
        self.setGeometry(300, 300, 400, 150)  # (x, y, width, height)

        # 创建布局
        layout = QVBoxLayout()

        # 创建标签用于显示输入内容
        self.label = QLabel('您输入的内容将显示在这里...')
        layout.addWidget(self.label)

        # 创建 QLineEdit 输入框
        self.line_edit = QLineEdit()
        self.line_edit.setPlaceholderText("请输入一些文字...")  # 设置占位符文本
        layout.addWidget(self.line_edit)

        # 连接信号:当文本改变时实时更新标签
        self.line_edit.textChanged.connect(self.update_label)

        # 设置布局
        self.setLayout(layout)

    def update_label(self, text):
        """槽函数:更新标签显示内容"""
        if text:
            self.label.setText(f"您输入的是:{text}")
        else:
            self.label.setText('您输入的内容将显示在这里...')

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = SimpleLineEditDemo()
    window.show()
    sys.exit(app.exec())

这个例子运行当你在输入框中键入任何内容时,上方的标签会实时更新,显示你输入的内容。删除所有文字后,标签会恢复初始提示状态。

  • QTextEdit 与 QPlainTextEdit:多行文本输入

当需要输入大段文字时,就需要使用多行文本控件。

常用控件(Widgets)- 输入类

QTextEdit 例程

    • QTextEdit 功能强劲,支持富文本(如粗体、斜体)和 HTML 格式,适合需要文本格式化的场景,如邮件正文编辑。使用 toHtml()获取带格式的文本。
    • QPlainTextEdit 更轻量,专注于处理纯文本,性能优于 QTextEdit,特别适合显示和编辑大段无格式文本,如日志或代码编辑器。使用 toPlainText()获取纯文本内容。
import sys
from PySide6.QtWidgets import (QApplication, QWidget, QVBoxLayout,
                               QHBoxLayout, QTextEdit, QPlainTextEdit, QLabel)

class TextEditDemo(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle('QTextEdit 与 QPlainTextEdit 示例')
        self.resize(600, 400)

        # 创建主布局
        main_layout = QVBoxLayout()

        # 创建 QTextEdit 部分
        rich_text_label = QLabel("QTextEdit (富文本支持):")
        self.rich_text_edit = QTextEdit()
        # 设置初始富文本内容
        initial_html = """
        <h1>这是一个标题</h1>
        <p>这是<strong>加粗</strong>文本和<em>斜体</em>文本。</p>
        <phljs-symbol">color:blue;">这是蓝色文字。</p>
        <ul>
            <li>列表项 1</li>
            <li>列表项 2</li>
        </ul>
        """
        self.rich_text_edit.setHtml(initial_html)

        # 创建 QPlainTextEdit 部分
        plain_text_label = QLabel("QPlainTextEdit (纯文本, 高效):")
        self.plain_text_edit = QPlainTextEdit()
        # 设置初始纯文本内容
        self.plain_text_edit.setPlainText(
            "这是一个纯文本编辑器。
它超级适合显示日志、代码或任何大量文本。
性能优于QTextEdit。")

        # 将控件添加到布局
        main_layout.addWidget(rich_text_label)
        main_layout.addWidget(self.rich_text_edit)
        main_layout.addWidget(plain_text_label)
        main_layout.addWidget(self.plain_text_edit)

        self.setLayout(main_layout)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = TextEditDemo()
    window.show()
    sys.exit(app.exec())

数值输入控件

当输入内容限定为数字时,使用专门的数值控件能提供更好的用户体验。

  • QSpinBox :数字微调框

它们带有一个上下箭头按钮,可以微调数值。

常用控件(Widgets)- 输入类

QSpinBox 与 QDoubleSpinBox 例程

    • QSpinBox 用于整数输入,QDoubleSpinBox用于浮点数输入。
    • 通过 setRange(min, max)设置取值范围,setValue()设置当前值,value()获取当前值。
    • 对于 QDoubleSpinBox,还可以用 setDecimals()设置小数点后的位数。
import sys
from PySide6.QtWidgets import (QApplication, QWidget, QVBoxLayout, QHBoxLayout,
                               QSpinBox, QDoubleSpinBox, QLabel, QFormLayout,
                               QGroupBox, QPushButton)

class SpinBoxDemo(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle('QSpinBox 和 QDoubleSpinBox 示例')
        self.resize(400, 300)

        # 创建主布局
        main_layout = QVBoxLayout()

        # 创建整数微调框组
        int_group = QGroupBox("整数微调框 (QSpinBox)")
        int_layout = QFormLayout()

        self.int_spinbox = QSpinBox()
        self.int_spinbox.setRange(0, 100)  # 设置范围 0-100
        self.int_spinbox.setValue(50)  # 设置初始值
        self.int_spinbox.setSingleStep(5)  # 设置步长为5
        self.int_spinbox.setPrefix("数量: ")  # 设置前缀
        self.int_spinbox.setSuffix(" 个")  # 设置后缀
        self.int_spinbox.valueChanged.connect(self.on_int_value_changed)

        self.int_label = QLabel("当前值: 50")
        int_layout.addRow("整数调节:", self.int_spinbox)
        int_layout.addRow(self.int_label)
        int_group.setLayout(int_layout)

        # 创建浮点数微调框组
        double_group = QGroupBox("浮点数微调框 (QDoubleSpinBox)")
        double_layout = QFormLayout()

        self.double_spinbox = QDoubleSpinBox()
        self.double_spinbox.setRange(0.0, 100.0)  # 设置范围 0.0-100.0
        self.double_spinbox.setValue(25.5)  # 设置初始值
        self.double_spinbox.setSingleStep(0.5)  # 设置步长为0.5
        self.double_spinbox.setDecimals(2)  # 设置小数位数为2
        self.double_spinbox.setPrefix("价格: ¥")  # 设置前缀
        self.double_spinbox.setSuffix(" 元")  # 设置后缀
        self.double_spinbox.valueChanged.connect(self.on_double_value_changed)

        self.double_label = QLabel("当前值: 25.50")
        double_layout.addRow("浮点数调节:", self.double_spinbox)
        double_layout.addRow(self.double_label)
        double_group.setLayout(double_layout)

        # 创建功能按钮
        button_layout = QHBoxLayout()
        self.read_btn = QPushButton("读取当前值")
        self.read_btn.clicked.connect(self.read_current_values)

        self.reset_btn = QPushButton("重置")
        self.reset_btn.clicked.connect(self.reset_values)

        button_layout.addWidget(self.read_btn)
        button_layout.addWidget(self.reset_btn)

        # 结果标签
        self.result_label = QLabel("在这里查看操作结果...")
        self.result_label.setStyleSheet("background-color: #f0f0f0; padding: 10px;")

        # 将所有组件添加到主布局
        main_layout.addWidget(int_group)
        main_layout.addWidget(double_group)
        main_layout.addLayout(button_layout)
        main_layout.addWidget(self.result_label)

        self.setLayout(main_layout)

    def on_int_value_changed(self, value):
        """整数微调框值改变时的槽函数"""
        self.int_label.setText(f"当前值: {value}")
        self.result_label.setText(f"整数框值变为: {value}")

    def on_double_value_changed(self, value):
        """浮点数微调框值改变时的槽函数"""
        self.double_label.setText(f"当前值: {value:.2f}")
        self.result_label.setText(f"浮点数框值变为: {value:.2f}")

    def read_current_values(self):
        """读取当前值的槽函数"""
        int_value = self.int_spinbox.value()
        double_value = self.double_spinbox.value()
        self.result_label.setText(f"当前值 - 整数: {int_value}, 浮点数: {double_value:.2f}")

    def reset_values(self):
        """重置为默认值的槽函数"""
        self.int_spinbox.setValue(50)
        self.double_spinbox.setValue(25.5)
        self.result_label.setText("已重置为默认值")


if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = SpinBoxDemo()
    window.show()
    sys.exit(app.exec())
  • QSlider:滑块

通过拖动滑块来直观地调整一个范围内的数值。可以使用 setOrientation(1)设置水平或垂直方向。valueChanged信号在滑块值改变时触发,可用于实时响应。

常用控件(Widgets)- 输入类

QSlider 例程

import sys
from PySide6.QtWidgets import (QApplication, QWidget, QVBoxLayout,
                               QHBoxLayout, QSlider, QLabel, QPushButton)
from PySide6.QtCore import Qt


class SliderDemo(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle('QSlider 滑动条示例')
        self.resize(400, 300)

        # 创建主布局
        main_layout = QVBoxLayout()

        # 创建水平滑动条部分
        h_layout = QHBoxLayout()
        self.h_label = QLabel('水平滑块值: 50')
        self.h_slider = QSlider(Qt.Horizontal)

        # 设置水平滑动条属性
        self.h_slider.setMinimum(0)  # 最小值
        self.h_slider.setMaximum(100)  # 最大值
        self.h_slider.setValue(50)  # 初始值
        self.h_slider.setSingleStep(5)  # 单步步长
        self.h_slider.setTickPosition(QSlider.TicksBelow)  # 刻度位置
        self.h_slider.setTickInterval(10)  # 刻度间隔

        h_layout.addWidget(QLabel('水平滑块:'))
        h_layout.addWidget(self.h_slider)
        h_layout.addWidget(self.h_label)

        # 创建垂直滑动条部分
        v_layout = QHBoxLayout()
        self.v_label = QLabel('垂直滑块值: 30')
        self.v_slider = QSlider(Qt.Vertical)

        # 设置垂直滑动条属性
        self.v_slider.setMinimum(0)
        self.v_slider.setMaximum(60)
        self.v_slider.setValue(30)
        self.v_slider.setSingleStep(2)
        self.v_slider.setTickPosition(QSlider.TicksLeft)
        self.v_slider.setTickInterval(5)

        v_layout.addWidget(QLabel('垂直滑块:'))
        v_layout.addWidget(self.v_slider)
        v_layout.addWidget(self.v_label)

        # 创建功能按钮
        btn_layout = QHBoxLayout()
        self.read_btn = QPushButton('读取当前值')
        self.reset_btn = QPushButton('重置滑块')

        btn_layout.addWidget(self.read_btn)
        btn_layout.addWidget(self.reset_btn)

        # 结果显示标签
        self.result_label = QLabel('操作结果将显示在这里...')
        self.result_label.setAlignment(Qt.AlignCenter)
        self.result_label.setStyleSheet('background-color: #f0f0f0; padding: 10px; border: 1px solid #ccc;')

        # 连接信号与槽
        self.h_slider.valueChanged.connect(self.on_h_slider_changed)
        self.v_slider.valueChanged.connect(self.on_v_slider_changed)
        self.read_btn.clicked.connect(self.read_values)
        self.reset_btn.clicked.connect(self.reset_sliders)

        # 将所有组件添加到主布局
        main_layout.addLayout(h_layout)
        main_layout.addLayout(v_layout)
        main_layout.addLayout(btn_layout)
        main_layout.addWidget(self.result_label)

        self.setLayout(main_layout)

    def on_h_slider_changed(self, value):
        """水平滑动条值改变时的槽函数"""
        self.h_label.setText(f'水平滑块值: {value}')
        self.result_label.setText(f'水平滑块值变为: {value}')

    def on_v_slider_changed(self, value):
        """垂直滑动条值改变时的槽函数"""
        self.v_label.setText(f'垂直滑块值: {value}')
        self.result_label.setText(f'垂直滑块值变为: {value}')

    def read_values(self):
        """读取当前滑块值的槽函数"""
        h_value = self.h_slider.value()
        v_value = self.v_slider.value()
        self.result_label.setText(f'当前值 - 水平: {h_value}, 垂直: {v_value}')

    def reset_sliders(self):
        """重置滑块为默认值的槽函数"""
        self.h_slider.setValue(50)
        self.v_slider.setValue(30)
        self.result_label.setText('滑块已重置为默认值')


if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = SliderDemo()
    window.show()
    sys.exit(app.exec())

选择控件

当输入内容来自一组预定义选项时,选择控件是理想选择。

  • QComboBox:下拉列表框

点击后展开一个列表供用户选择。使用 addItem()或 addItems()添加选项。通过 currentText()获取当前选中的文本,currentIndex()获取索引。currentIndexChanged信号在选项变化时触发。

常用控件(Widgets)- 输入类

QComboBox 例程

import sys
from PySide6.QtWidgets import QApplication, QWidget, QVBoxLayout, QLabel, QComboBox


class ComboBoxExample(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        # 设置窗口属性
        self.setWindowTitle('QComboBox 示例')
        self.resize(300, 150)

        # 创建主布局
        layout = QVBoxLayout()

        # 创建标签用于显示选择结果
        self.result_label = QLabel('当前选择:请从下拉列表中选择')
        layout.addWidget(self.result_label)

        # 创建QComboBox
        self.combo_box = QComboBox()

        # 方法1:逐个添加选项
        self.combo_box.addItem('Python')
        self.combo_box.addItem('Java')
        self.combo_box.addItem('C++')

        # 方法2:批量添加选项列表
        languages = ['JavaScript', 'Go', 'Rust', 'Swift']
        self.combo_box.addItems(languages)

        # 连接信号:当选择改变时触发
        self.combo_box.currentIndexChanged.connect(self.on_selection_changed)
        self.combo_box.currentTextChanged.connect(self.on_text_changed)

        layout.addWidget(self.combo_box)
        self.setLayout(layout)

    def on_selection_changed(self, index):
        """当选择项索引改变时调用"""
        selected_text = self.combo_box.currentText()
        self.result_label.setText(f'选择索引: {index}, 内容: {selected_text}')
        print(f'选项改变 - 索引: {index}, 文本: {selected_text}')

    def on_text_changed(self, text):
        """当选择项文本改变时调用"""
        print(f'文本改变为: {text}')


if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = ComboBoxExample()
    window.show()
    sys.exit(app.exec())
  • QCheckBox:复选框

用于表明一个独立的“是/否”选项或可以同时选择多个选项的情况。通过 isChecked()方法判断是否被勾选。stateChanged信号在状态改变时发出。

常用控件(Widgets)- 输入类

QCheckBox 例程

from PySide6.QtWidgets import QApplication, QCheckBox, QWidget, QVBoxLayout


class ExampleWindow(QWidget):
    def __init__(self):
        super().__init__()
        layout = QVBoxLayout()

        # 创建复选框并设置文本
        self.checkbox = QCheckBox("启用高级选项")
        # 设置初始状态为选中
        self.checkbox.setChecked(True)

        # 连接信号:当状态改变时触发自定义函数
        self.checkbox.toggled.connect(self.on_checkbox_toggled)

        layout.addWidget(self.checkbox)
        self.setLayout(layout)

    def on_checkbox_toggled(self, checked):
        # 根据状态执行不同操作
        if checked:
            print("高级功能已开启")
            # 这里可以添加启用相关功能的代码
        else:
            print("高级功能已关闭")
            # 这里可以添加禁用相关功能的代码


if __name__ == "__main__":
    app = QApplication([])
    window = ExampleWindow()
    window.show()
    app.exec()
  • QRadioButton:单选按钮

用于在一组选项中只能选择一个的互斥场景。需要将多个 QRadioButton放入同一个父组件(如 QGroupBox或 QWidget)中来实现互斥。通过 isChecked()判断哪个被选中。

常用控件(Widgets)- 输入类

QRadioButton 例程

import sys
from PySide6.QtWidgets import QApplication, QWidget, QVBoxLayout, QRadioButton, QLabel

class RadioButtonExample(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()
    
    def initUI(self):
        # 设置窗口
        self.setWindowTitle('QRadioButton 简单示例')
        self.resize(300, 200)
        
        # 创建布局
        layout = QVBoxLayout()
        
        # 创建标签显示选择结果
        self.result_label = QLabel('请选择一个选项')
        layout.addWidget(self.result_label)
        
        # 创建单选按钮
        self.radio1 = QRadioButton('选项 A')
        self.radio2 = QRadioButton('选项 B') 
        self.radio3 = QRadioButton('选项 C')
        
        # 设置默认选中项
        self.radio1.setChecked(True)
        self.result_label.setText('当前选择: 选项 A')
        
        # 将单选按钮添加到布局
        layout.addWidget(self.radio1)
        layout.addWidget(self.radio2)
        layout.addWidget(self.radio3)
        
        # 连接信号与槽
        self.radio1.toggled.connect(lambda: self.on_radio_toggled('选项 A'))
        self.radio2.toggled.connect(lambda: self.on_radio_toggled('选项 B'))
        self.radio3.toggled.connect(lambda: self.on_radio_toggled('选项 C'))
        
        self.setLayout(layout)
    
    def on_radio_toggled(self, option_text):
        """处理单选按钮状态变化的槽函数"""
        # 只有被选中的按钮才会触发这个函数
        self.result_label.setText(f'当前选择: {option_text}')
        print(f'用户选择了: {option_text}')

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = RadioButtonExample()
    window.show()
    sys.exit(app.exec())

快速输入:QInputDialog

QInputDialog不是一个常驻界面的控件,而是一个便捷的对话框,用于快速获取用户的一项输入。它支持整数、浮点数、文本、多行文本和下拉选项等多种模式,超级适合进行简单的交互,如重命名文件或输入一个数值。

常用控件(Widgets)- 输入类

QInputDialog 例程

import sys
from PySide6.QtWidgets import (QApplication, QWidget, QVBoxLayout,
                               QPushButton, QInputDialog, QLabel)

class SimpleInputDemo(QWidget):
    def __init__(self):
        super().__init__()
        self.user_info = None
        self.intro_btn = None
        self.city_btn = None
        self.height_btn = None
        self.age_btn = None
        self.name_btn = None
        self.info_label = None
        self.initUI()

    def initUI(self):
        self.setWindowTitle('QInputDialog 简单例程')
        self.resize(300, 300)

        layout = QVBoxLayout()

        # 显示结果的标签
        self.info_label = QLabel('请点击按钮输入信息')
        self.info_label.setWordWrap(True)  # 允许文本自动换行
        layout.addWidget(self.info_label)

        # 1. 获取文本 - 姓名
        self.name_btn = QPushButton('输入姓名')
        self.name_btn.clicked.connect(self.get_name)
        layout.addWidget(self.name_btn)

        # 2. 获取整数 - 年龄
        self.age_btn = QPushButton('输入年龄')
        self.age_btn.clicked.connect(self.get_age)
        layout.addWidget(self.age_btn)

        # 3. 获取浮点数 - 身高
        self.height_btn = QPushButton('输入身高 (米)')
        self.height_btn.clicked.connect(self.get_height)
        layout.addWidget(self.height_btn)

        # 4. 从列表选择 - 城市
        self.city_btn = QPushButton('选择城市')
        self.city_btn.clicked.connect(self.get_city)
        layout.addWidget(self.city_btn)

        # 5. 获取多行文本 - 简介
        self.intro_btn = QPushButton('输入简介')
        self.intro_btn.clicked.connect(self.get_intro)
        layout.addWidget(self.intro_btn)

        self.setLayout(layout)

        # 存储用户信息
        self.user_info = {
            'name': '未输入',
            'age': '未输入',
            'height': '未输入',
            'city': '未输入',
            'intro': '未输入'
        }

    def get_name(self):
        """获取文本输入 - 姓名"""
        text, ok = QInputDialog.getText(
            self,
            '输入姓名',
            '请输入你的姓名:',
            text='张三'  # 可选初始值
        )
        if ok and text:
            self.user_info['name'] = text
            self.update_display()

    def get_age(self):
        """获取整数输入 - 年龄"""
        age, ok = QInputDialog.getInt(
            self,
            '输入年龄',
            '请输入你的年龄:',
            value=18,  # 默认值
            minValue=0,  # 最小值
            maxValue=120,  # 最大值
            step=1  # 步长
        )
        if ok:
            self.user_info['age'] = str(age)
            self.update_display()

    def get_height(self):
        """获取浮点数输入 - 身高"""
        height, ok = QInputDialog.getDouble(
            self,
            '输入身高',
            '请输入你的身高 (米):',
            value=1.75,  # 默认值
            minValue=0.5,  # 最小值
            maxValue=2.5,  # 最大值
            decimals=2  # 小数位数
        )
        if ok:
            self.user_info['height'] = f"{height:.2f}"
            self.update_display()

    def get_city(self):
        """从列表中选择项目 - 城市"""
        cities = ['北京', '上海', '广州', '深圳', '杭州', '成都']
        city, ok = QInputDialog.getItem(
            self,
            '选择城市',
            '请选择你所在的城市:',
            cities,
            current=0,  # 默认选中第一项
            editable=False  # 不允许编辑,只能选择
        )
        if ok and city:
            self.user_info['city'] = city
            self.update_display()

    def get_intro(self):
        """获取多行文本输入 - 简介"""
        text, ok = QInputDialog.getMultiLineText(
            self,
            '输入简介',
            '请简单介绍一下自己:',
            text='这个人很懒,什么也没写...'  # 可选初始文本
        )
        if ok and text:
            # 简略显示,避免界面过长
            display_text = text[:20] + '...' if len(text) > 20 else text
            self.user_info['intro'] = display_text
            self.update_display()

    def update_display(self):
        """更新界面显示"""
        info_text = "已收集的信息:nn"
        info_text += f"姓名: {self.user_info['name']}n"
        info_text += f"年龄: {self.user_info['age']}n"
        info_text += f"身高: {self.user_info['height']} 米n"
        info_text += f"城市: {self.user_info['city']}n"
        info_text += f"简介: {self.user_info['intro']}"

        self.info_label.setText(info_text)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = SimpleInputDemo()
    window.show()
    sys.exit(app.exec())

核心使用技巧

  1. 获取输入值:这是与控件交互的核心。记住常用方法:text()(QLineEdit)、value()(QSpinBox/QDoubleSpinBox)、currentText()(QComboBox)、isChecked()(QCheckBox/QRadioButton)。
  2. 响应输入变化:使用信号与槽机制。将控件的信号(如 textChanged、valueChanged、clicked)连接到你的自定义函数(槽),即可在用户操作时立即执行代码。
  3. 数据验证:确保输入数据的有效性。可以使用内置验证器(如 QIntValidator、QDoubleValidator),或在槽函数中进行逻辑判断,并通过 QMessageBox提示用户。
© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容