简约风格的网站diy网站建设
- 作者: 五速梦信息网
- 时间: 2026年04月20日 10:48
当前位置: 首页 > news >正文
简约风格的网站,diy网站建设,建模培训机构,有哪个网站教人做美食目录 1.QLineEdit 单行输入框 例#xff1a;输入个人信息#xff0c;通过按钮提交 例#xff1a;为输入框设置验证器#xff0c;检查输入的电话 例#xff1a;验证两次输入的密码是否一致 例#xff1a;是否显示密码按钮,toggled信号。 2.QTextEdit多行输入框 、QPl…目录 1.QLineEdit 单行输入框 例输入个人信息通过按钮提交 例为输入框设置验证器检查输入的电话 例验证两次输入的密码是否一致 例是否显示密码按钮,toggled信号。 2.QTextEdit多行输入框 、QPlainTextEdit纯文本输入框 例textChanged()信号,获取输入框文本textEdit.toPlainText() 例selectionChanged信号获取光标选中的文本 例cursorPositionChanged()信号获取光标位置 例undoAvailable(bool)和redoAvailable(bool)信号 例copyAvailable(bool b)信号 1.QLineEdit 单行输入框 功能单行输入框、可以输入一段文本但不能换行。 属性 text输入框文本inputMask输入内容格式约束对输入内容进行简单校验。maxLength文本最大长度frame是否添加边框echoMode 显示方式 QLineEdit::Normal默认值输入什么显示什么 QLineEdit::Password输入字符被隐藏 替代显示*或 QLineEdit::NoEcho输入不显示任何字符 cursorPosition光标所在位置alignment文字对齐方式dragEnabled是否允许被拖拽readOnly是否时只读的不允许修改文本placeHolderText当输入框的输入内容为空时显示的提示信息clearButtonEnabled是否会显示“清除按钮”点击清除输入框输入的所有内容。 信号 cursorPositionChanged(int old, int new)鼠标位置发生改变时发出信号old为原位置、new为新位置。editingFinished()按下返回或回车或行编辑失去焦点时发出次信号。returnPressed() 按下返回或回车时发出信号 如果设置了验证器必须验证通过才能发出信号。 selectionChanged() 当选中的文本改变时发出该信号。 textChanged(const QString text) 当文本内容改变时发出信号。 text是新文本。 当通过代码方式修改文本也能触发该信号。 textEdited(const QString text) 当文本内容改变时发出信号。 text是新文本。 当通过代码方式修改文本不能触发该信号。 只能由使用者修改输入框内容时才会触发。 例输入个人信息通过按钮提交 //InputMask,设置输入文本的固定格式0表示数字ui-lineEdit_phone-setInputMask(000-0000-0000); #include widget.h #include ui_widget.h #includeQDebugWidget::Widget(QWidget parent): QWidget(parent), ui(new Ui::Widget) {ui-setupUi(this);ui-lineEdit_name-setPlaceholderText(请输入姓名);ui-lineEdit_name-setClearButtonEnabled(true);ui-lineEdit_password-setPlaceholderText(请输入密码);ui-lineEdit_password-setEchoMode(QLineEdit::Password);ui-lineEdit_password-setClearButtonEnabled(true);ui-lineEdit_phone-setPlaceholderText(请输入电话);ui-lineEdit_phone-setClearButtonEnabled(true);//InputMask,设置输入文本的固定格式0表示数字ui-lineEdit_phone-setInputMask(000-0000-0000); }Widget::~Widget() {delete ui; }void Widget::on_pushButton_clicked() {//获取性别按钮的选中状态QString genderui-radioButton_male-isChecked()?男:女;//获取用户输入的信息qDebug()姓名ui-lineEdit_name-text()密码ui-lineEdit_password-text()性别gender电话ui-lineEdit_phone-text(); }例为输入框设置验证器检查输入的电话 inputMask只能对输入内容跟进行简单的校验 通过正则表达式可以实现更复杂的字符串匹配校验。 正则表达式Regular Expression简称 Regex是一种用于匹配和处理字符串的模式。它可以通过一个特定的规则来定义字符的集合帮助你查找、替换、提取或验证文本数据。 通过验证器验证一个字符串是否符合规则 定义正则表达式对象 QRegExp regExp(^1\d{10}\();//正则表达式对象//^1表示以1开//\d{10}:\d表示数字加\\为了防止c识别为转义字符//{10}:表示前面的内容重复出现10次就表示必须出现10个数字//\)表示结尾创建一个验证器对象QRegExpValidator(regExp)设置到控件 ui-lineEdit-setValidator(new QRegExpValidator(regExp));//只是注册一个验证器 使用验证器 validator()-validate(content,pos) 参数1需要检查的字符串 需注意textEdited信号触发槽函数传递的参数是const的不能直接传入validate(需拷贝到临时对象。 参数2int 输入输出型参数返回字符串从哪个位置开始不匹配 返回值符合匹配规则时返回QValidator::Acceptable QString contentarg1;int pos0;//验证通过解除按钮的禁用状态if(ui-lineEdit-validator()-validate(content,pos)QValidator::Acceptable){//验证通过ui-pushButton-setEnabled(true);}else{ui-pushButton-setEnabled(false);} 例题代码通过是否匹配来决定是否解除button按钮的禁用状态。 1.QRegExp regExp(^1\d{10}$);//正则表达式对象2.QLineEdit- setValidator(new QRegExpValidator(regExp));//创建验证器并传入lineEdit控件3.使用输入框内容改变时会触发的信号 textEdited(const QString text)/textChanged(const QString text)4.在槽函数中使用验证器验证字符串判断是否符合规则if(ui-lineEdit-validator()-validate(content,pos)QValidator::Acceptable) #include widget.h #include ui_widget.h #includeQRegExpValidatorWidget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui-setupUi(this);//给单行输入框设置验证器基于正则表达式实现QRegExp regExp(^1\d{10}$);//正则表达式对象//^1表示以1开//\d{10}:\d表示数字加\为了防止c识别为转义字符//{10}:表示前面的内容重复出现10次就表示必须出现10个数字//表示结尾//创建一个验证器对象传入lineedit控件ui-lineEdit-setValidator(new QRegExpValidator(regExp));//只是注册一个验证器}Widget::~Widget() {delete ui; }void Widget::on_pushButton_clicked() { }void Widget::on_lineEdit_textEdited(const QString arg1) {QString contentarg1;int pos0;//验证通过解除按钮的禁用状态if(ui-lineEdit-validator()-validate(content,pos)QValidator::Acceptable){//验证通过ui-pushButton-setEnabled(true);}else{ui-pushButton-setEnabled(false);} }例验证两次输入的密码是否一致 使用textEdited(const QString text)信号来触发对两个输入框内容的检查。 #include widget.h #include ui_widget.hWidget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui-setupUi(this);//设置EchoModeui-lineEdit-setEchoMode(QLineEdit::Password);ui-lineEdit_2-setEchoMode(QLineEdit::Password);}Widget::~Widget() {delete ui; }void Widget::on_lineEdit_2_textEdited(const QString arg1) {this-compare(); }void Widget::on_lineEdit_textEdited(const QString arg1) {this-compare(); }void Widget::compare() {//获取两个输入框的内容const QString s1ui-lineEdit-text();const QString s2ui-lineEdit_2-text();if(s1.isEmpty() s2.isEmpty()){ui-label_tip-setText(密码为空);}else if(s1s2){ui-label_tip-setText(两次输入的密码一致);}else{ui-label_tip-setText(两次输入的密码不一致);} } 例是否显示密码按钮,toggled信号。 利用按钮的toggled信号 #include widget.h #include ui_widget.hWidget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui-setupUi(this);//默认不显示密码ui-lineEdit-setEchoMode(QLineEdit::Password); }Widget::~Widget() {delete ui; }void Widget::on_checkBox_toggled(bool checked)//按钮选中的状态切换时触发 {//参数为选中状态if(checkedtrue){ui-lineEdit-setEchoMode(QLineEdit::Normal);}else{ui-lineEdit-setEchoMode(QLineEdit::Password);} }2.QTextEdit多行输入框 、QPlainTextEdit纯文本输入框 QTextEdit支持文本格式纯文本、富文本、markdown格式QPlainTextEdit支持的文本格式纯文本 这两个输入框、除了支持的文本格式不一样外其他基本一致所以以QTextEdit为例就可以啦。 属性 markdown 输入框的内容支持markdown格式。 能够自动将markdown文本渲染成html。 html输入框的内容支持大部分html标签。placeHolderText输入框为空时的提示信息readOnly输入框是否只读。undoRedoEnable 是否启动undo/redo功能。 undo ctrlz撤销 redo ctrly还原撤销 autoFormating是否开启自动格式化tabstopWidth按下一个tab键缩进几个空格overwriteMode是否开启覆盖写模式acceptRichText是否接受富文本内容。verticalScrollBarPolicy 垂直方向滚动条的出现策略。 Qt::ScrollBarAsNeeded :根据内容⾃动决定是否需要滚动条。默认值。 Qt::ScrollBarAlwaysOff :总是关闭滚动条。 Qt::ScrollBarAlwaysOn :总是显⽰滚动条。 horizontalScrollBarPolicy ⽔平⽅向滚动条的出现策略 Qt::ScrollBarAsNeeded :根据内容⾃动决定是否需要滚动条。这是默认值。 Qt::ScrollBarAlwaysOff :总是关闭滚动条。Qt::ScrollBarAlwaysOn :总是显⽰滚动条。 信号 textChanged()文本内容发生改变时触发selectionChanged()选中范围改变时触发sursorPositionChanged()光标移动时触发undoAvailable(bool) undo操作的状态切换时触发 由不可执行到可执行变化时触发一次 或不可执行到可执行时触发一次 redoAvailable(bool)redo操作的状态切换时时触发copyAvailable(bool)文本被选中/取消时触发 例textChanged()信号,获取输入框文本textEdit.toPlainText() void Widget::on_textEdit_textChanged() {//获取多行输入框的内容const QString strui-textEdit-toPlainText();//还有toHtml() toMarkdown()ui-label-setText(str); } 没有按下回车之前输入的内容是输入到输入法中的。 按下回车后才会从输入法将文本输入到输入框内触发信号。 例selectionChanged信号获取光标选中的文本 光标选中范围改变时触发槽函数没有参数没有直接传递改变的信息。 可以在信号触发后访问输入框的textCursor对象通过该对象可以获取光标选中范围的文本、和光标位置。 void Widget::on_textEdit_selectionChanged()//光标选中范围改变是触发selectionChanged信号 {QTextCursor cursorui-textEdit-textCursor();//文本光标对象qDebug()selectionChangedcursor.selectedText();//获取光标选中的文本 }例cursorPositionChanged()信号获取光标位置 void Widget::on_textEdit_cursorPositionChanged()//光标位置移动时触发 {QTextCursor cursorui-textEdit-textCursor();//文本光标对象qDebug()cursorPositionChanged:cursor.position();//获取光标的位置 } 例undoAvailable(bool)和redoAvailable(bool)信号 void Widget::on_textEdit_undoAvailable(bool b)//undo状态改变时触发一次 {qDebug()undoAvailable:b;// }void Widget::on_textEdit_redoAvailable(bool b)//redo状态改变时触发一次 {qDebug()redoAvailable:b;// } 例copyAvailable(bool b)信号 void Widget::on_textEdit_copyAvailable(bool b)//文本被选中/取消时触发 {qDebug()copyAvailable:b; }
- 上一篇: 简易网站制作软件外贸英文网站开发
- 下一篇: 简约个人网站如何在网站做淘宝页面
