东莞市做网站的,广州网站优,台州做网站那家好,上海云站网络技术服务中心文章目录 1. 实例功能概述2. 源码2.1 可视化UI设计2.2 widget.h2.3 widget.cpp 1. 实例功能概述
QComboBox 是下拉列表框组件类#xff0c;它提供一个下拉列表供用户选择#xff0c;也可以直接当作一个QLineEdit 用作输入。OComboBox 除了显示可见下拉列表外#xff0c;每个… 文章目录 1. 实例功能概述2. 源码2.1 可视化UI设计2.2 widget.h2.3 widget.cpp 1. 实例功能概述
QComboBox 是下拉列表框组件类它提供一个下拉列表供用户选择也可以直接当作一个QLineEdit 用作输入。OComboBox 除了显示可见下拉列表外每个项 (item或称列表项)还可以关联一个 QVariant 类型的变量用于存储一些不可见数据。 QPlainTextEdit 是一个多行文本编辑器用于显示和编辑多行简单文本。实例 samp4_6 演示QComboBox和QPlainTextEdit 的使用其运行时界面如图4-6 所示。 关于QComboBox 的使用和“QPlainTextEdit 的使用”请参考下面源码和《Qt5.9 c开发指南》
2. 源码
2.1 可视化UI设计 2.2 widget.h
#ifndef WIDGET_H
#define WIDGET_H#include QWidgetnamespace Ui {
class Widget;
}class Widget : public QWidget
{Q_OBJECTpublic:explicit Widget(QWidget *parent 0);~Widget();private slots:void on_btnIniItems_clicked();void on_btnClearItems_clicked();void on_chkBoxEditable_clicked(bool checked);void on_comboBox_currentIndexChanged(const QString arg1);void on_btnClearText_clicked();void on_chkBoxReadonly_clicked(bool checked);void on_btnToComboBox_clicked();void on_plainTextEdit_customContextMenuRequested(const QPoint pos);void on_btnIni2_clicked();void on_comboBox2_currentIndexChanged(const QString arg1);private:Ui::Widget *ui;
};#endif // WIDGET_H
2.3 widget.cpp
#include widget.h
#include ui_widget.h#include QTextDocument
#include QTextBlock
#include QMenu#include QMap
#include QVariantWidget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui-setupUi(this);
}Widget::~Widget()
{delete ui;
}void Widget::on_btnIniItems_clicked()
{ //初始化列表按键QIcon icon;icon.addFile(:/images/icons/aim.ico);ui-comboBox-clear(); //清除列表for (int i0;i20;i)ui-comboBox-addItem(icon,QString::asprintf(Item %d,i)); //添加一个字符串
// ui-comboBox-addItem(QString::asprintf(Item %d,i)); //添加一个字符串// QStringList strList;
// strList北京上海天津河北省山东省山西省;
// ui-comboBox-addItems(strList);
}void Widget::on_btnClearItems_clicked()
{ui-comboBox-clear(); //清除条目
}void Widget::on_chkBoxEditable_clicked(bool checked)
{ //设置comboBox是否可编辑ui-comboBox-setEditable(checked);
}void Widget::on_comboBox_currentIndexChanged(const QString arg1)
{ //comboBox选择一个条目时文本添加到 plainTextEditui-plainTextEdit-appendPlainText(arg1);
}void Widget::on_btnClearText_clicked()
{ //清除文本框ui-plainTextEdit-clear();
}void Widget::on_chkBoxReadonly_clicked(bool checked)
{//设置 plainTextEdit 的 ReadOnly 属性ui-plainTextEdit-setReadOnly(checked);
}void Widget::on_btnToComboBox_clicked()
{ //plainTextEdit 的内容逐行添加为 comboBox 的条目QTextDocument* docui-plainTextEdit-document(); //QPlainTextEdit 的内容保存在一个 QTextDocument 里int cntdoc-blockCount();//QTextDocument分块保存内容文本文件就是硬回车符是一个block,QIcon icon(:/images/icons/aim.ico);ui-comboBox-clear(); //清除条目for (int i0; icnt;i) //扫描所有 blobk{QTextBlock textLinedoc-findBlockByNumber(i);//用blobk编号获取block就是获取一行QString strtextLine.text(); //转换为文本ui-comboBox-addItem(icon,str); //添加一个条目到comboBox}
}void Widget::on_plainTextEdit_customContextMenuRequested(const QPoint pos)
{ //创建并显示标准弹出式菜单QMenu* menuui-plainTextEdit-createStandardContextMenu(); //创建标准右键菜单
// menu-exec(QCursor::pos());//在鼠标光标位置显示右键快捷菜单menu-exec(pos);//在鼠标光标位置显示右键快捷菜单
}void Widget::on_btnIni2_clicked()
{//初始化具有自定义数据的comboBox
//QMap自动根据 key排序QMapQString, int City_Zone;City_Zone.insert(北京,10);City_Zone.insert(上海,21);City_Zone.insert(天津,22);City_Zone.insert(大连,411);City_Zone.insert(锦州,416);City_Zone.insert(徐州,516);City_Zone.insert(福州,591);City_Zone.insert(青岛,532);ui-comboBox2-clear();foreach(const QString str,City_Zone.keys())ui-comboBox2-addItem(str,City_Zone.value(str));
}void Widget::on_comboBox2_currentIndexChanged(const QString arg1)
{ //条目有用户数据QString zoneui-comboBox2-currentData().toString();ui-plainTextEdit-appendPlainText(arg1:区号zone);
}