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

    }
}
相关推荐
明月看潮生25 分钟前
青少年编程与数学 02-019 Rust 编程基础 08课题、字面量、运算符和表达式
开发语言·青少年编程·rust·编程与数学
天天打码1 小时前
Rspack:字节跳动自研 Web 构建工具-基于 Rust打造高性能前端工具链
开发语言·前端·javascript·rust·开源
Petrichorzncu1 小时前
Lua再学习
开发语言·学习·lua
AA-代码批发V哥1 小时前
正则表达式: 从基础到进阶的语法指南
java·开发语言·javascript·python·正则表达式
charlie1145141911 小时前
逐步理解Qt信号与槽机制
数据库·qt
炯哈哈2 小时前
【上位机——MFC】序列化机制
开发语言·c++·mfc·上位机
蓝莓味柯基2 小时前
Python3正则表达式:字符串魔法师的指南[特殊字符]‍♂️
开发语言·python·正则表达式
隐世12 小时前
C++多态讲解
开发语言·c++
码上飞扬2 小时前
Java大师成长计划之第20天:Spring Framework基础
java·开发语言
刚入门的大一新生2 小时前
C++初阶-string类的模拟实现1
开发语言·c++