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

    }
}
相关推荐
侃侃_天下2 天前
最终的信号类
开发语言·c++·算法
echoarts2 天前
Rayon Rust中的数据并行库入门教程
开发语言·其他·算法·rust
Aomnitrix2 天前
知识管理新范式——cpolar+Wiki.js打造企业级分布式知识库
开发语言·javascript·分布式
每天回答3个问题2 天前
UE5C++编译遇到MSB3073
开发语言·c++·ue5
伍哥的传说2 天前
Vite Plugin PWA – 零配置构建现代渐进式Web应用
开发语言·前端·javascript·web app·pwa·service worker·workbox
小莞尔2 天前
【51单片机】【protues仿真】 基于51单片机八路抢答器系统
c语言·开发语言·单片机·嵌入式硬件·51单片机
我是菜鸟0713号2 天前
Qt 中 OPC UA 通讯实战
开发语言·qt
JCBP_2 天前
QT(4)
开发语言·汇编·c++·qt·算法
Brookty2 天前
【JavaEE】线程安全-内存可见性、指令全排序
java·开发语言·后端·java-ee·线程安全·内存可见性·指令重排序
百锦再2 天前
[特殊字符] Python在CentOS系统执行深度指南
开发语言·python·plotly·django·centos·virtualenv·pygame