【Qt】控件9

1.List Widget

1.对List Widget实现插入,,并且通过输入的lineedit,获取当前的lineedit的text,插入到List Widget

ui实现,可以通过代码向list widget中插入数据,或者通过输入在lineedit中,点击插入按钮进行插入,删除按钮删除选中的数据

cpp 复制代码
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获取输入,通过按钮实现插入

cpp 复制代码
void Widget::on_pushButton_clicked()
{
    QString str=ui->lineEdit->text();//获取lineedit 数据
    ui->listWidget->addItem(str);//添加到listWidget
}

3.将选中的数据进行删除

cpp 复制代码
void Widget::on_pushButton_2_clicked()
{
    int row=ui->listWidget->currentRow();//获取当前选择是哪一行
     ui->listWidget->takeItem(row);//删除对应行

}

4.将list Widget转到槽

cpp 复制代码
void Widget::on_listWidget_currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
{
   if(current!=nullptr)//显示当前选择的
   {
       qDebug()<<current->text();

   }
   if(previous!=nullptr)//显示之前选择的
   {
       qDebug()<<previous->text();
   }
}

效果演示:

listwidget

2.QMessageBox

设置消息弹框(设置标题->设置内容->设置图标->设置按钮)

cpp 复制代码
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();//代码到这里会阻塞的,等待对话框被关闭
}

也可以通过自定义设置按钮

cpp 复制代码
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的返回值,判断哪个按键被被按下了

cpp 复制代码
   //返回值判断哪个被点击了
       int which=box->exec();//代码到这里会阻塞的,等待对话框被关闭
       if(which==QMessageBox::Ok)
       {
         qDebug()<<"ok";  
             
       }
       else if(which==QMessageBox::Cancel)
        {
           
            qDebug()<<"Cancel";  
            
        }
       else 
         {
            
            qDebug()<<"Save";
             
         }

效果演示:

简单实现消息框功能

cpp 复制代码
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";

    }
}
相关推荐
_extraordinary_13 分钟前
Java SpringMVC(二) --- 响应,综合性练习
java·开发语言
Larry_Yanan1 小时前
QML学习笔记(三十四)QML的GroupBox、RadioButton
c++·笔记·qt·学习·ui
@。1241 小时前
对于灰度发布(金丝雀发布)的了解
开发语言·前端
hsjkdhs2 小时前
C++之多层继承、多源继承、菱形继承
开发语言·c++·算法
Full Stack Developme2 小时前
Python Redis 教程
开发语言·redis·python
qq_4924484463 小时前
Jmeter设置负载阶梯式压测场景(详解教程)
开发语言·python·jmeter
ID_180079054734 小时前
京东获取整站实时商品详情数据|商品标题|数据分析提取教程
java·开发语言
ajassi20004 小时前
开源 C++ QT QML 开发(十七)进程--LocalSocket
c++·qt·开源
qiuiuiu4134 小时前
正点原子RK3568学习日志-编译第一个驱动程序helloworld
linux·c语言·开发语言·单片机
molong9315 小时前
Kotlin 内联函数、高阶函数、扩展函数
android·开发语言·kotlin