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

    }
}
相关推荐
LDR0061 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术1 天前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript
码云数智-园园1 天前
C++20 Modules 模块详解
java·开发语言·spring
swordbob1 天前
NIO的channel中什么是 fd(File Descriptor,文件描述符)
java·开发语言·nio
源分享1 天前
Java线程同步的多种实现方法(非常详细)
java·开发语言·jvm
Luminous.1 天前
C语言--day30
c语言·开发语言
何以解忧,唯有..1 天前
Go语言循环语句详解:for、range与循环控制
开发语言·算法·golang
謓泽1 天前
C语言不是语法,是通往机器的地图。
c语言·开发语言
云水一下1 天前
从零开始学 PHP 系列(一):PHP 的前世今生与开发环境搭建
开发语言·php
飞天狗1111 天前
零基础JavaWeb入门——第五课第二小节:九大内置对象 · 第2个:response(响应对象)
java·开发语言