主要是为了巩固Qt所学知识,简单实现一个小的界面,由于本次没有实现真正通讯,所以只用了两个pushButton模仿实现效果,界面如下: 在textEdit(图中所标内容有误)中实现输入内容,在listView中显示出来,实现效果如下: 完整代码如下:
Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { ui->setupUi(this); model = new QStandardItemModel(); connect(ui->pushButton,SIGNAL(clicked(bool)),this,SLOT(sendBtnSlot())); connect(ui->recvBtn,SIGNAL(clicked(bool)),this,SLOT(recvBtnSlot())); } void Widget::sendBtnSlot() { QString text = ui->textEdit->toPlainText(); //获取文本 ui->listView->setModel(model); QDateTime currentTime = QDateTime::currentDateTime(); //获取本机当前时间 QStandardItem *item = new QStandardItem(QString("[%1]\t :我 \n %2\n"). arg(currentTime.toString("yyyy-MM-dd hh:mm:ss")).arg(text)); item->setTextAlignment(Qt::AlignRight); //文本右对齐 item->setForeground(QBrush(QColor(255,0,0))); model->appendRow(item); ui->textEdit->clear(); } void Widget::recvBtnSlot() { QString text = ui->textEdit->toPlainText(); ui->listView->setModel(model); QDateTime currentTime = QDateTime::currentDateTime(); QStandardItem *item = new QStandardItem(QString("他: [%1]\n %2\n"). arg(currentTime.toString("yyyy-MM-dd hh:mm:ss")).arg(text)); item->setTextAlignment(Qt::AlignLeft); model->appendRow(item); ui->textEdit->clear(); } Widget::~Widget() { delete ui; }QStandardItemModel 是标准的以项数据(item data)为基础的标准数据模型类,通常与 QTableView 组合成 Model/View 结构,实现通用的二维数据的管理功能。 创建数据模型后,为 TableView 组件设置数据模型ui->listView->setModel(model);
