【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";

    }
}
相关推荐
liulilittle8 分钟前
深度剖析:OPENPPP2 libtcpip 实现原理与架构设计
开发语言·网络·c++·tcp/ip·智能路由器·tcp·通信
88号技师14 分钟前
2025年6月一区-田忌赛马优化算法Tianji’s horse racing optimization-附Matlab免费代码
开发语言·算法·matlab·优化算法
勤奋的知更鸟20 分钟前
Java 编程之模板方法模式
java·开发语言·模板方法模式
上单带刀不带妹1 小时前
手写 Vue 中虚拟 DOM 到真实 DOM 的完整过程
开发语言·前端·javascript·vue.js·前端框架
-凌凌漆-2 小时前
【Qt】QStringLiteral 介绍
开发语言·qt
程序员爱钓鱼2 小时前
Go语言项目工程化 — 常见开发工具与 CI/CD 支持
开发语言·后端·golang·gin
想要入门的程序猿2 小时前
Qt写入excel
数据库·qt·excel
军训猫猫头2 小时前
1.如何对多个控件进行高效的绑定 C#例子 WPF例子
开发语言·算法·c#·.net
真的想上岸啊3 小时前
学习C++、QT---18(C++ 记事本项目的stylesheet)
开发语言·c++·学习
明天好,会的3 小时前
跨平台ZeroMQ:在Rust中使用zmq库的完整指南
开发语言·后端·rust