• Qt系列-常用控件使用整理


    1、QMainWindow介绍
    菜单栏最多只有一个

    1. //菜单栏创建 菜单栏最多只能有一个
    2.     QMenuBar*bar = menuBar();
    3.     //将菜单栏放入到窗口中
    4.     setMenuBar(bar);
    5.     //创键菜单
    6.     QMenu*fileMenu=bar->addMenu("文件");
    7.     QMenu*editMenu=bar->addMenu("编辑");
    8.     //创建菜单项
    9.     QAction*newAction=fileMenu->addAction("新建");
    10.     //添加分割线
    11.     fileMenu->addSeparator();
    12.     QAction*openAction=fileMenu->addAction("打开");


    2、工具栏及状态栏介绍
    工具栏可以有多个,状态栏只能有一个

    1. //工具栏 可以有多个
    2.     QToolBar*toolBar=new QToolBar(this);
    3.     addToolBar(Qt::LeftToolBarArea,toolBar);
    4.     //后期设置 只允许 左右停靠
    5.     toolBar->setAllowedAreas(Qt::LeftToolBarArea|Qt::RightToolBarArea);
    6.     //设置浮动
    7.     toolBar->setFloatable(false);
    8.     //设置移动(总开关)
    9.  //   toolBar->setMovable(false);
    10.     //工具栏中可以设置内容
    11.     toolBar->addAction(newAction);
    12.     toolBar->addSeparator();
    13.     toolBar->addAction(openAction);
    14.     //工具栏中添加控件
    15.     QPushButton*btn=new QPushButton("aa",this);
    16.     toolBar->addWidget(btn);
    17.     //状态栏 最多有一个
    18.     QStatusBar*stBar=statusBar();
    19.     //设置到窗口中
    20.     setStatusBar(stBar);


    3、柳接部件、浮动窗口及核心部件介绍
    铆接部件 浮动窗口 可以多个
    设置核心部件 只能一个
     

    1.   //放置标签控件
    2.     QLabel*label=new QLabel("提示信息",this);
    3.     stBar->addWidget(label);
    4.     QLabel*label2=new QLabel("提示信息",this);
    5.     stBar->addPermanentWidget(label2);
    6.     //铆接部件(浮动窗口)可以有多个
    7.     QDockWidget*dockWidget=new QDockWidget("浮动",this);
    8.     addDockWidget(Qt::BottomDockWidgetArea,dockWidget);
    9.     //设置后期停靠区域,只允许上下
    10.     dockWidget->setAllowedAreas(Qt::TopDockWidgetArea|Qt::BottomDockWidgetArea);
    11.     //设置中心部件,只能有一个
    12.     QTextEdit*edit=new QTextEdit(this);
    13.     setCentralWidget(edit);


    4、资源文件添加及图片应用
    具体步骤:

    将图片文件 拷贝到项目位置下
    右键项目->添加新文件 –> Qt - > Qt recourse File - >给资源文件起名 res 生成 res.qrc
    open in editor 编辑资源
    添加前缀 添加文件
    使用 “ : + 前缀名 + 文件名 ”

    1. //    ui->actionnew->setIcon(QIcon("C:\\Users\\Administrator\\Desktop\\day2资料\\Doc\\Image\\Luffy.png"));
    2.     //使用添加Qt资源":+前缀名+文件名"
    3.     ui->actionnew->setIcon(QIcon(":/Image/Luffy.png"));
    4.     ui->actionopen->setIcon(QIcon(":/Image/LuffyQ.png"));



    5、对话框介绍
    对话框也分模态对话框和非模态对话框

    模态对话框 不可以对其他窗口进行操作 会出现阻塞(即要先处理了对话框之后才能处理别处)

    1. QDialog dlg(this) ;
    2. dlg.exec();


    非模态对话框 可以对其他窗口进行操作但会一闪而过,因此要创建到堆区中

    1. QDialog * dlg2 = newQDialog(this);
    2. dlg2->show();
    3. dlg2->setAttribute(Qt::WA_DeleteOnClose);
    4. //模态创建 阻塞
    5. //       QDialog dlg(this);
    6. //       dlg.resize(200,100);
    7. //       dlg.exec();
    8. //       qDebug()<<"模态创建";
    9. //非模态创建
    10.        QDialog*dlg2=new QDialog(this);
    11.        dlg2->resize(200,100);
    12.        dlg2->show();
    13.        dlg2->setAttribute(Qt::WA_DeleteOnClose);//55号 属性
    14.        qDebug()<<"非模态创建";


    6、消息对话框
    QMessageBox 静态成员函数 创建对话框(错误、信息、提问、警告)
    提问对话框中函数参数:
     

    1. //参数1 父亲 参数2 标题 参数3 显示内容 参数4 按键类型 参数5 默认关联回车按键
    2. //QMessageBox::critical(this,"critical","错误");
    3. //信息对话框
    4. //        QMessageBox::information(this,"info","信息");
    5. //提问对话框
    6. //参数1 父亲  参数2 标题 参数3 提示内容 参数4 按键类型 参数5 默认关键回车按键
    7. if(QMessageBox::Save==QMessageBox::question(this,"ques","提问",QMessageBox::Save|QMessageBox::Cancel)){
    8.                qDebug()<<"选择的是保存";
    9.                    }else{
    10.                 qDebug()<<"选择的是取消";
    11.     }

    7、警告对话框
      QMessageBox::warning(this,"warning","警告");

    8、颜色对话框

    1. //        QColor color=QColorDialog::getColor(QColor(255,0,0));
    2. //        qDebug()<<"r="<<color.red()<<"g="<<color.green()<<"b="<<color.blue();
    3. //        //文件对话框 参数1 父亲 餐数2 标题 参数3 默认打开路径 参数4 过滤文件格式
    4. //        //返回值 选取的路径
    5. //        QString str= QFileDialog::getOpenFileName(this,"图片","C:\\Users\\Administrator\\Desktop\\day2资料\\Doc\\Image",".png");
    6. //        qDebug()<<str;

    9、字体对话框
           

    1. bool flag;
    2. QFont font=QFontDialog::getFont(&flag,QFont("华文彩云",36));
    3. qDebug()<<"字体:"<<font.family()<<"字号:"<<font.pointSize()<<"是否加粗:"<<font.bold() <<"是否倾斜:"<<font.italic();


    10、QTreeWidget 树控件

    • 设置头 ui->treeWidget->setHeaderLabels(QStringList()<< “英雄”<< “英雄介绍”);
    • 创建根节点 QTreeWidgetItem * liItem = new QTreeWidgetItem(QStringList()<< “力量”);
    • 添加根节点 到 树控件上 ui->treeWidget->addTopLevelItem(liItem);
    • 添加子节点 liItem->addChild(l1);
    1. //设置水平头
    2.     ui->treeWidget->setHeaderLabels(QStringList()<<"英雄"<<"英雄介绍");
    3.     QTreeWidgetItem*liItem=new QTreeWidgetItem(QStringList()<<"力量");
    4.     QTreeWidgetItem*minItem=new QTreeWidgetItem(QStringList()<<"敏捷");
    5.     QTreeWidgetItem*zhiItem=new QTreeWidgetItem(QStringList()<<"智力");
    6.     //加载顶层的节点
    7.     ui->treeWidget->addTopLevelItem(liItem);
    8.     ui->treeWidget->addTopLevelItem(minItem);
    9.     ui->treeWidget->addTopLevelItem(zhiItem);
    10.     //追加子节点
    11.     QStringList heroL1;
    12.     QStringList heroL2;
    13.     heroL1 << "刚被猪" << "前排坦克,能在吸收伤害的同时造成可观的范围输出";
    14.     heroL2 << "船长" << "前排坦克,能肉能输出能控场的全能英雄";
    15.     QStringList heroM1;
    16.     QStringList heroM2;
    17.     heroM1 << "月骑" << "中排物理输出,可以使用分裂利刃攻击多个目标";
    18.     heroM2 << "小鱼人" << "前排战士,擅长偷取敌人的属性来增强自身战力";
    19.     QStringList heroZ1;
    20.     QStringList heroZ2;
    21.     heroZ1 << "死灵法师" << "前排法师坦克,魔法抗性较高,拥有治疗技能";
    22.     heroZ2 << "巫医" << "后排辅助法师,可以使用奇特的巫术诅咒敌人与治疗队友";
    23.     QTreeWidgetItem*l1=new QTreeWidgetItem(heroL1);
    24.     QTreeWidgetItem*l2=new QTreeWidgetItem(heroL2);
    25.     liItem->addChild(l1);
    26.     liItem->addChild(l2);
    27.     QTreeWidgetItem*m1=new QTreeWidgetItem(heroM1);
    28.     QTreeWidgetItem*m2=new QTreeWidgetItem(heroM2);
    29.     minItem->addChild(m1);
    30.     minItem->addChild(m2);
    31.     QTreeWidgetItem*z1=new QTreeWidgetItem(heroZ1);
    32.     QTreeWidgetItem*z2=new QTreeWidgetItem(heroZ2);
    33.     zhiItem->addChild(z1);
    34.     zhiItem->addChild(z2);

    3、QTableWidget 表格控件

    • 设置列数 ui->tableWidget->setColumnCount(3);
    • 设置水平表头 ui->tableWidget->setHorizontalHeaderLabels(QStringList()<<“姓名”<< “性别”<< “年龄”);
    • 设置行数 ui->tableWidget->setRowCount(5);
    • 设置正文 ui->tableWidget->setItem(0,0, new QTableWidgetItem(“亚瑟”));

     

    1.  //设置列数
    2.     ui->tableWidget->setColumnCount(3);
    3.     //设置水平表头
    4.     ui->tableWidget->setHorizontalHeaderLabels(QStringList()<<"姓名"<<"性别"<<"年龄");
    5.     //设置行数
    6.     ui->tableWidget->setRowCount(5);
    7.     //设置正文
    8. //    ui->tableWidget->setItem(0,0,new QTableWidgetItem("亚瑟"));
    9.     QStringList nameList;
    10.     nameList<<"亚瑟"<<"赵云"<<"张飞"<<"关羽"<<"花木兰";
    11.     QList<QString>sexList;
    12.     sexList<<"男"<<"男"<<"男"<<"女";
    13.     for(int i=0;i<5;i++){
    14.         int col=0;
    15.         ui->tableWidget->setItem(i,col++,new QTableWidgetItem(nameList[i]));
    16.         ui->tableWidget->setItem(i,col++,new QTableWidgetItem(sexList.at(1)));
    17.         //int转strin
    18.         ui->tableWidget->setItem(i,col++,new QTableWidgetItem(QString::number(i+18)));
    19.     }

  • 相关阅读:
    20%的业务代码的Spring声明式事务,可能都没处理正确
    java 企业工程管理系统软件源码 自主研发 工程行业适用
    【干货】Vue3 组件通信方式详解
    jar依赖批量上传Nexus服务器(二)
    大规模语言模型--训练成本
    M4Singer CUDA error: no kernel image is available for execution on the device
    七夕节送男朋友什么礼物?2022七夕礼物推荐
    圣杯布局和双飞翼布局
    Pinia学习
    【frp实现内网穿透踩坑到成功篇】
  • 原文地址:https://blog.csdn.net/cangqiongxiaoye/article/details/133895740