1.List Widget
1.对List Widget实现插入,,并且通过输入的lineedit,获取当前的lineedit的text,插入到List Widget
ui实现,可以通过代码向list widget中插入数据,或者通过输入在lineedit中,点击插入按钮进行插入,删除按钮删除选中的数据
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);ui->listWidget->addItem("c++"); //第一种方式向listWidget添加数据ui->listWidget->addItem("java");ui->listWidget->addItem("c语言");ui->listWidget->addItem(new QListWidgetItem("python"));//第二种方式向listWidget添加数据}
也可以右击list Widget,点击+号添加数据
2.通过lineedit获取输入,通过按钮实现插入
void Widget::on_pushButton_clicked()
{QString str=ui->lineEdit->text();//获取lineedit 数据ui->listWidget->addItem(str);//添加到listWidget
}
3.将选中的数据进行删除
void Widget::on_pushButton_2_clicked()
{int row=ui->listWidget->currentRow();//获取当前选择是哪一行ui->listWidget->takeItem(row);//删除对应行}
4.将list Widget转到槽
void Widget::on_listWidget_currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
{if(current!=nullptr)//显示当前选择的{qDebug()<<current->text();}if(previous!=nullptr)//显示之前选择的{qDebug()<<previous->text();}
}
效果演示:
listwidget
2.QMessageBox
设置消息弹框(设置标题->设置内容->设置图标->设置按钮)
void Widget::on_pushButton_clicked()
{QMessageBox* box=new QMessageBox(this);box->setWindowTitle("警告");//消息框标题box->setText("你输入有误");//消息框内容box->setIcon(QMessageBox::Warning);//消息图案box->setStandardButtons(QMessageBox::Ok|QMessageBox::Cancel|QMessageBox::Save);//显示按钮box->exec();//代码到这里会阻塞的,等待对话框被关闭
}
也可以通过自定义设置按钮
void Widget::on_pushButton_clicked()
{QMessageBox* box=new QMessageBox(this);box->setWindowTitle("警告");//消息框标题box->setText("你输入有误");//消息框内容box->setIcon(QMessageBox::Warning);//消息图案//box->setStandardButtons(QMessageBox::Ok|QMessageBox::Cancel|QMessageBox::Save);//显示按钮QPushButton* st=new QPushButton(this);//定义一个按键对象box->addButton(st,QMessageBox::AcceptRole);//将按键添加至消息框,并且指定消息框的作用box->exec();//代码到这里会阻塞的,等待对话框被关闭
}
根据exec的返回值,判断哪个按键被被按下了
//返回值判断哪个被点击了int which=box->exec();//代码到这里会阻塞的,等待对话框被关闭if(which==QMessageBox::Ok){qDebug()<<"ok"; }else if(which==QMessageBox::Cancel){qDebug()<<"Cancel"; }else {qDebug()<<"Save";}
效果演示:
简单实现消息框功能
void Widget::on_pushButton_clicked()
{int result=QMessageBox::warning(this,"标题","你的输入有误",QMessageBox::Ok|QMessageBox::Cancel);if(result==QMessageBox::Ok){qDebug()<<"ok";}else if(result==QMessageBox::Cancel){qDebug()<<"Cancel";}
}