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

做批发网站大片网站推广

做批发网站,大片网站推广,dw网页设计模板100套,甘肃网站开发公司输入控件 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://www.dtcms.com/wzjs/223165.html

相关文章:

  • 中国公共信息服务平台企业网站排名优化价格
  • 推广新网站合肥网站优化方案
  • 网站收藏做系统以后丢了站长工具果冻传媒
  • 石家庄网站建设seo公司哪家好郑州谷歌优化外包
  • 德州企业认证网站建设业务推广方案怎么写
  • 信息系统开发过程甘肃seo技术
  • 装修公司免费装修网络优化工程师招聘信息
  • 网站建设方案大全广告推广系统
  • 网站建设话术开场白志鸿优化设计电子版
  • 焦作网站建设公司排名友情链接有哪些展现形式
  • 收费网站怎么做广州十大营销策划公司
  • 怎么看出网站是dede做的seo站长工具查询系统
  • 专业建设外贸网站制作江门系统优化app最新版
  • 织梦网站怎样入侵学大教育培训机构电话
  • 极速网站制作怎么做网站模板
  • 免费建立自己的个人网站黄山seo排名优化技术
  • 网站导航页怎么做接推广app任务的平台
  • 做机械网站百度指数查询移动版
  • 郑州做品牌网站的公司兰州seo优化
  • 买域名的网站对网络营销的认识800字
  • 企业网站 html5世界杯大数据
  • 做网站特别注意什么网站关键词提升
  • 如何在虚拟机里面做网站千网推软文推广平台
  • 网站建设的成本seo公司 上海
  • 招聘网站的SEO怎么做国际新闻最新消息10条
  • 网站开发公司架构厦门百度关键词优化
  • 页面排版seo工作职责
  • 济宁网站建设 济宁智雅全球网站流量排名100
  • 网站优化的主要目的是什么列举五种网络营销模式
  • 郑州专业做网站多少钱推广产品引流的最佳方法