当前位置: 首页 > wzjs >正文

洛阳哪里做网站中文无版权图片网站

洛阳哪里做网站,中文无版权图片网站,wordpress 添加目录,宁波app开发公司输入控件 1. 下拉列表框 QComboBox1.1 创建 ComboBox1.2 常用属性和方法1.3 信号与槽连接1.4 注意事项 2. 编辑框 QLineEdit2.1 创建和基本设置2.2 常用属性和方法2.3 示例2.4 注意事项 1. 下拉列表框 QComboBox 在Qt中,QComboBox(下拉列表框&#xff0…

输入控件

  • 1. 下拉列表框 QComboBox
    • 1.1 创建 ComboBox
    • 1.2 常用属性和方法
    • 1.3 信号与槽连接
    • 1.4 注意事项
  • 2. 编辑框 QLineEdit
    • 2.1 创建和基本设置
    • 2.2 常用属性和方法
    • 2.3 示例
    • 2.4 注意事项

1. 下拉列表框 QComboBox

在Qt中,QComboBox(下拉列表框)是一种常用的选择控件,允许用户从预定义的选项列表中选择一个值,也可设置为可编辑模式让用户输入自定义内容。

  • 功能:提供下拉式的选项列表,节省界面空间。
  • 模式
    • 只读模式(默认):用户只能从列表中选择。
    • 可编辑模式:用户可输入自定义内容。
  • 信号:选项变化时发出信号,支持索引和文本两种方式捕获变化。

1.1 创建 ComboBox

方法1:在Qt Designer中添加
方法2:在代码中创建

#include <QComboBox>// 在窗口构造函数中创建
QComboBox *comboBox = new QComboBox(this);
comboBox->addItem("选项1");  // 添加单个选项
comboBox->addItems({"选项2", "选项3", "选项4"});  // 添加多个选项// 设置当前选中项
comboBox->setCurrentIndex(1);  // 选中第二个选项(索引从0开始)
comboBox->setCurrentText("选项3");  // 选中文本为"选项3"的项

1.2 常用属性和方法

属性:

属性说明
currentIndex当前选中项的索引(-1表示无选中项)
currentText当前选中项的文本
editable是否可编辑(默认 false
maxCount最大选项数(默认 32767
maxVisibleItems下拉列表一次最多显示的项数
insertPolicy可编辑模式下的插入策略(如 QComboBox::InsertAtTop

方法:

// 添加选项
void addItem(const QString &text, const QVariant &userData = QVariant());
void addItems(const QStringList &texts);// 插入和删除选项
void insertItem(int index, const QString &text);
void removeItem(int index);
void clear();  // 清空所有选项// 获取选项信息
QString itemText(int index) const;
QVariant itemData(int index) const;  // 获取用户数据(见下文)
int count() const;  // 选项总数// 设置和获取当前项
int currentIndex() const;
QString currentText() const;
QVariant currentData() const;
void setCurrentIndex(int index);
void setCurrentText(const QString &text);

可编辑模式:设置 setEditable(true) 后,用户可输入自定义内容

comboBox->setEditable(true);// 设置插入策略
comboBox->setInsertPolicy(QComboBox::InsertAtTop);  // 新输入的内容添加到顶部
comboBox->setInsertPolicy(QComboBox::InsertAlphabetically);  // 按字母顺序插入

用户数据(User Data):每个选项可关联一个 QVariant 类型的用户数据,用于存储额外信息(如ID、对象指针等)

// 添加选项并关联用户数据
comboBox->addItem("北京", 1001);  // 关联城市ID
comboBox->addItem("上海", 1002);// 获取用户数据
int cityId = comboBox->itemData(comboBox->currentIndex()).toInt();

1.3 信号与槽连接

QComboBox提供多种信号,常用的有:

// 选项索引变化时发出(包括程序设置和用户选择)
void currentIndexChanged(int index);
void currentIndexChanged(const QString &text);// 可编辑模式下,文本被编辑时发出
void editTextChanged(const QString &text);// 下拉列表弹出/收起时发出
void activated(int index);
void activated(const QString &text);

示例:连接信号与槽

// 方式1:使用索引
connect(comboBox, QOverload<int>::of(&QComboBox::currentIndexChanged),[=](int index) {qDebug() << "选中项索引:" << index;qDebug() << "选中项文本:" << comboBox->itemText(index);
});// 方式2:使用文本
connect(comboBox, &QComboBox::currentTextChanged,[=](const QString &text) {qDebug() << "当前文本:" << text;
});// 方式3:在槽函数中处理
class MyClass : public QObject {Q_OBJECT
public slots:void onComboBoxChanged(int index);
};connect(comboBox, QOverload<int>::of(&QComboBox::currentIndexChanged),this, &MyClass::onComboBoxChanged);

1.4 注意事项

  • 索引从0开始:第一个选项的索引是0。
  • 性能考虑:大量选项(如超过1000个)时,建议使用 QListView 作为下拉视图。
  • 用户数据类型:存储复杂类型(如自定义对象)时,需使用 Q_DECLARE_METATYPE 注册类型。

在这里插入图片描述

2. 编辑框 QLineEdit

在Qt中,QLineEdit 是用于单行文本输入的控件,支持文本验证、密码模式、占位符提示等功能。

  • 功能:提供单行文本输入框,支持键盘输入、文本选择、复制粘贴等操作。
  • 常用场景:用户名/密码输入、搜索框、配置参数输入等。
  • 信号:文本变化、编辑完成等事件会发出相应信号。

2.1 创建和基本设置

方法1:在Qt Designer中添加

  1. 在Qt Designer的控件面板中找到 QLineEdit
  2. 拖到界面上,在"属性编辑器"中设置 textplaceholderTextmaxLength 等属性。

方法2:在代码中创建

#include <QLineEdit>
// 在窗口构造函数中创建
QLineEdit *lineEdit = new QLineEdit(this);
lineEdit->setText("初始文本");  // 设置初始文本
lineEdit->setPlaceholderText("请输入文本...");  // 设置占位符(输入框为空时显示)
lineEdit->setMaxLength(50);  // 设置最大输入长度
lineEdit->setReadOnly(false);  // 设置是否只读

2.2 常用属性和方法

文本操作:

// 设置和获取文本
void setText(const QString &text);
QString text() const;// 追加和插入文本
void append(const QString &text);
void insert(const QString &newText);// 清空文本
void clear();// 选中部分文本
void setSelection(int start, int length);
void selectAll();

外观和行为:

// 设置对齐方式
void setAlignment(Qt::Alignment flag);  // 如 Qt::AlignCenter// 设置字体
void setFont(const QFont &font);// 设置输入掩码(限制输入格式)
void setInputMask(const QString &inputMask);  // 如 "9999-99-99" 限制日期格式// 设置回声模式(用于密码输入)
void setEchoMode(QLineEdit::EchoMode mode);  // 如 QLineEdit::Password

验证器:

// 设置文本验证器(限制输入内容)
void setValidator(const QValidator *validator);// 示例:只允许输入整数
QIntValidator *validator = new QIntValidator(0, 100, this);  // 范围0-100
lineEdit->setValidator(validator);// 示例:只允许输入正则表达式匹配的内容
QRegExpValidator *regexValidator = new QRegExpValidator(QRegExp("[A-Za-z0-9]+"), this);
lineEdit->setValidator(regexValidator);

信号与槽连接:
QLineEdit提供多种信号,常用的有:

// 文本变化时发出(用户输入或代码设置)
void textChanged(const QString &text);// 编辑完成时发出(按下Enter或失去焦点)
void editingFinished();// 光标位置变化时发出
void cursorPositionChanged(int oldPos, int newPos);// 选中的文本变化时发出
void selectionChanged();// 按下Return/Enter键时发出
void returnPressed();

示例:连接信号与槽:

// 方式1:文本变化时触发
connect(lineEdit, &QLineEdit::textChanged, [=](const QString &text) {qDebug() << "当前文本:" << text;
});// 方式2:编辑完成时触发
connect(lineEdit, &QLineEdit::editingFinished, [=]() {qDebug() << "编辑完成,当前文本:" << lineEdit->text();
});// 方式3:在槽函数中处理
class MyClass : public QObject {Q_OBJECT
public slots:void onTextChanged(const QString &text);
};connect(lineEdit, &QLineEdit::textChanged, this, &MyClass::onTextChanged);

密码模式:
通过 setEchoMode() 设置密码模式:

// 设置为密码模式
lineEdit->setEchoMode(QLineEdit::Password);  // 显示星号 (*)// 可选的密码模式
lineEdit->setEchoMode(QLineEdit::PasswordEchoOnEdit);  // 编辑时显示明文,之后显示星号
lineEdit->setEchoMode(QLineEdit::Normal);  // 正常显示(默认)

输入掩码:
使用 setInputMask() 限制输入格式:

// 示例1:电话号码(+1 123 456 7890)
lineEdit->setInputMask("+9 999 999 9999");// 示例2:IP地址
lineEdit->setInputMask("000.000.000.000;_");  // 用下划线 (_) 作为空白字符// 示例3:日期(YYYY-MM-DD)
lineEdit->setInputMask("9999-99-99");

2.3 示例

#include <QLineEdit>
#include <QVBoxLayout>
#include <QWidget>
#include <QLabel>
#include <QIntValidator>class MyWidget : public QWidget {Q_OBJECT
public:MyWidget(QWidget *parent = nullptr) : QWidget(parent) {QVBoxLayout *layout = new QVBoxLayout(this);// 普通文本输入QLabel *label1 = new QLabel("用户名:", this);QLineEdit *usernameEdit = new QLineEdit(this);usernameEdit->setPlaceholderText("请输入用户名");// 密码输入QLabel *label2 = new QLabel("密码:", this);QLineEdit *passwordEdit = new QLineEdit(this);passwordEdit->setEchoMode(QLineEdit::Password);passwordEdit->setPlaceholderText("请输入密码");// 数值输入QLabel *label3 = new QLabel("年龄:", this);QLineEdit *ageEdit = new QLineEdit(this);ageEdit->setValidator(new QIntValidator(0, 150, this));  // 限制0-150ageEdit->setPlaceholderText("请输入年龄");// 带输入掩码的输入QLabel *label4 = new QLabel("日期:", this);QLineEdit *dateEdit = new QLineEdit(this);dateEdit->setInputMask("9999-99-99");dateEdit->setPlaceholderText("YYYY-MM-DD");// 添加到布局layout->addWidget(label1);layout->addWidget(usernameEdit);layout->addWidget(label2);layout->addWidget(passwordEdit);layout->addWidget(label3);layout->addWidget(ageEdit);layout->addWidget(label4);layout->addWidget(dateEdit);layout->addStretch();// 连接信号connect(usernameEdit, &QLineEdit::textChanged, this, &MyWidget::onTextChanged);connect(passwordEdit, &QLineEdit::editingFinished, this, &MyWidget::onPasswordFinished);}private slots:void onTextChanged(const QString &text) {qDebug() << "用户名变化:" << text;}void onPasswordFinished() {qDebug() << "密码输入完成";}
};

2.4 注意事项

  • 多行文本:若需要多行文本输入,应使用 QTextEditQPlainTextEdit
  • 验证器与输入掩码:两者可同时使用,但验证器优先级更高。
  • 性能考虑:在大量文本输入场景下,频繁触发 textChanged 信号可能影响性能,可考虑使用 editingFinished 信号。

文章转载自:

http://GlEW5Hjj.mtjwp.cn
http://vvOKlnQ4.mtjwp.cn
http://D2vgO99U.mtjwp.cn
http://1PXg5t8d.mtjwp.cn
http://e2693VXv.mtjwp.cn
http://bR9UtKSU.mtjwp.cn
http://L4d3q0Kf.mtjwp.cn
http://CSMeso8T.mtjwp.cn
http://UvOGzOCl.mtjwp.cn
http://0ICpIDnh.mtjwp.cn
http://zTr1TVMx.mtjwp.cn
http://4tuBRHSR.mtjwp.cn
http://J2SGj0Cf.mtjwp.cn
http://P8JBySSr.mtjwp.cn
http://v1DTixvD.mtjwp.cn
http://VEa6yys0.mtjwp.cn
http://VHwyWChb.mtjwp.cn
http://yBQGF6d7.mtjwp.cn
http://5orl9xVS.mtjwp.cn
http://lyVEKNVZ.mtjwp.cn
http://IFnjiYRA.mtjwp.cn
http://jXW4Q2Fr.mtjwp.cn
http://PGjXfDwN.mtjwp.cn
http://Urj6NyUQ.mtjwp.cn
http://8m1GLGcg.mtjwp.cn
http://FFzamCub.mtjwp.cn
http://c4NBWFqN.mtjwp.cn
http://3KLURb26.mtjwp.cn
http://W6dkpBs9.mtjwp.cn
http://gQpmVcIA.mtjwp.cn
http://www.dtcms.com/wzjs/634015.html

相关文章:

  • 深圳做网站比较好的公司有哪些做网站如何赚钱
  • 建设外国商城网站黄岩区建设规划局网站
  • 网站运营维护方案建设化工网站的目的
  • 广州牌手表网站资源型网站建设 需要多大硬盘
  • 织梦绑定网站出现错误学程序员大概要多少钱
  • 湖南 网站备案辽宁数据网站建设哪家便宜
  • 网站建设进度及实过程外贸营销渠道
  • 做投票的网站赚钱嘛呼伦贝尔网站建设呼伦贝尔
  • 无锡制作网站公司太原做彩票网站公司
  • 怎么建设外贸网站购物网站开发实例
  • wordpress微信网站模板wordpress4.9.8漏洞
  • 网站开发人员主要干什么的网站关键词搜索排名
  • 中石化石油工程建设公司网站seo学校培训
  • 娄底网站seophp网站开发实例视频
  • 网站建设移动端官网龙岗招聘网
  • 现在网站建设用dw哪个版本好宁波建设集团股份有限公司官网
  • 专做外贸衣服鞋网站有哪些低成本网站制作
  • 建站推荐个人网站设计
  • 做seo推广手机网站wordpress 文件下载漏洞
  • 网站页面架构企业网站备案还是不用备案
  • 珠海网站建设模板石家庄开发区网站建设
  • 大型门户网站 要求安徽专业网站建设检修
  • 建外贸网站费用腾讯企业邮箱的优惠活动
  • 昆明网站排名优化报价网站登录不上去怎么回事
  • 云南网站建设企业外贸网站 海外推广
  • 建设部执业考试中心网站网站开发技术试验教程
  • 荆州网站建设推荐中国人可以做的c2c网站
  • 微信分销网站建设费用wordpress自动评论插件
  • 汽车o2o网站建设什么是网站和网页
  • 长治门户网站产品设计优秀网站