当前位置: 首页 > article >正文

Qt学习2

跟学视频

1.菜单栏和工具栏

    //菜单栏最多只能有一个//菜单栏创建QMenuBar * bar = menuBar();//将菜单栏放到窗口中setMenuBar(bar);//创建菜单QMenu * fileMenu = bar->addMenu("开始");QMenu * editMenu = bar->addMenu("编辑");//创建菜单项QAction * newAction = fileMenu->addAction("新建");//添加分隔符fileMenu->addSeparator();QAction * openAction = fileMenu->addAction("打开");//工具栏 可以有多个QToolBar * toolBar = new QToolBar(this);addToolBar(Qt::LeftToolBarArea,toolBar);//默认停靠在左边//后期设置 只允许 左右停靠toolBar->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);//设置浮动toolBar->setFloatable(false);//设置移动(总开关)toolBar->setMovable(false);//工具栏可以设置内容toolBar->addAction(newAction);//添加分隔符toolBar->addSeparator();toolBar->addAction(openAction);//工具栏中添加控件QPushButton * btn = new QPushButton("aa",this);toolBar->addWidget(btn);

2.状态栏、铆接部件、核心部件

   //状态栏 最多有一个QStatusBar * stBar = statusBar();setStatusBar(stBar);//放标签控件QLabel * label = new QLabel("提示信息",this);stBar->addWidget(label);QLabel * label2 = new QLabel("右侧提示信息",this);stBar->addPermanentWidget(label2);//铆接部件 (浮动窗口) 可以有多个QDockWidget * dockWidget = new QDockWidget("浮动",this);addDockWidget(Qt::BottomDockWidgetArea,dockWidget);//设置后期停靠区域dockWidget->setAllowedAreas(Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea);//设置中间部件 只能一个QTextEdit * edit = new QTextEdit(this);setCentralWidget(edit);

3.添加资源文件

1.项目文件名右击,添加新文件,Qt->Qt resouce file,文件名 res

2.先要把添加的资源放到建立的项目文件下,添加前缀“/”,添加文件,添加文件后,点左下角构建

    //使用Qt添加资源 ":+ 前缀名 + 文件名"ui->actionnew->setIcon(QIcon(":/Image/Luffy.png"));ui->actionopen->setIcon(QIcon(":/Image/LuffyQ.png"));

4.模态和非模态对话框

        //对话框 分类//模态对话框(不可以对其他窗口进行操作) 非模态对话框(可以对其他窗口进行操作)//模态创建 阻塞QDialog dlg(this);dlg.exec();//此时执行到此会弹出一个窗口,关闭窗口后,才会执行下边的代码(拥有阻塞功能)qDebug() << "模态对话框弹出了";//非模态对话框// QDialog dlg2(this);// dlg2.show();//show函数是在lambda函数中,当执行完该函数,show程序会释放掉,所以会出现窗口一闪而过的现象QDialog * dlg2 = new QDialog(this);//存放堆区dlg2->resize(200,100);dlg2->show();dlg2->setAttribute(Qt::WA_DeleteOnClose);//55号 属性qDebug() << "非模态对话框弹出了";

5.消息对话框

静态成员函数(static public func)

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

6.其他对话框

       //其他标准对话框//颜色对话框QColor color = QColorDialog::getColor(QColor(255,0,0));qDebug() << " r = " << color.red() << " g = " << color.green() << " b = " << color.blue();//文件对话框 参数1 父亲 参数2 标题 参数3 默认打开路径 参数4 过滤文件格式//返回值是 文件打开地址QString str = QFileDialog::getOpenFileName(this,"打开文件","C:\\Users\\16385\\Desktop","*.txt");qDebug() << str;//字体对话框bool flag;QFont font = QFontDialog::getFont(&flag,QFont("华文彩云",36));qDebug() << "字体:" << font.family().toUtf8().data() << "字号:" << font.pointSize() << "是否加粗: " <<font.bold() << "是否倾斜: "<<font.italic();

7.控件

按钮组

  1. QPushButton  常用按钮
  2. QToolButton  工具按钮  用于显示图片,如图想显示文字,修改风格:toolButtonStyle , 凸起风格autoRaise
  3. radioButton  单选按钮,设置默认 ui->rBtnMan->setChecked(true);
  4. checkbox多选按钮,监听状态,2 选中  1 半选(QcheckBox下的tristate) 0 未选中
        //设置单选按钮 男默认选中 rBtnMan是按钮的重命名ui->rBtnMan->setChecked(true);//选中女后 打印信息connect(ui->rBtnWoman,&QRadioButton::clicked,[=](){qDebug() << "选中了女了";});//多选按钮 2是选中 0是未选中connect(ui->cBox,&QCheckBox::stateChanged,[=](int state){qDebug() << state;});

    QListWidget 列表容器

    //利用ListWidget写诗QListWidgetItem * item = new QListWidgetItem("锄禾日当午");//将这一行放到listwidget中ui->listWidget->addItem(item);item->setTextAlignment(Qt::AlignHCenter);//水平居中对齐//利用addItems一次性添加整个诗内容QStringList list;list << "锄禾日当午" << "汗滴禾下土" << "谁知盘中餐" << "粒粒皆辛苦";ui->listWidget->addItems(list);

QTreeWidget 树控件

    //设置水平头ui->treeWidget->setHeaderLabels(QStringList () << "英雄" << "英雄介绍");QTreeWidgetItem * LiItem = new QTreeWidgetItem(QStringList() << "力量");QTreeWidgetItem * MinItem = new QTreeWidgetItem(QStringList() << "敏捷");QTreeWidgetItem * ZhiItem = new QTreeWidgetItem(QStringList() << "智力");//加载顶层的节点ui->treeWidget->addTopLevelItem(LiItem);ui->treeWidget->addTopLevelItem(MinItem);ui->treeWidget->addTopLevelItem(ZhiItem);//追加子节点QStringList heroL1,heroL2,heroM1,heroM2,heroZ1,heroZ2;heroL1 << "刚被猪" << "前排坦克,能在吸收伤害的同时造成可观的范围输出";heroL2 << "船长" << "前排坦克,能肉能输出能控场的全能英雄";heroM1 << "月骑" << "中排物理输出,可以使用分裂利刃攻击多个目标";heroM2 << "小鱼人" << "前排战士,擅长偷取敌人的属性来增强自身战力";heroZ1 << "死灵法师" << "前排法师坦克,魔法抗性较高,拥有治疗技能";heroZ2 << "巫医" << "后排辅助法师,可以使用奇特的巫术诅咒敌人与治疗队友";QTreeWidgetItem *l1 = new QTreeWidgetItem(heroL1);QTreeWidgetItem *l2 = new QTreeWidgetItem(heroL2);QTreeWidgetItem *m1 = new QTreeWidgetItem(heroM1);QTreeWidgetItem *m2 = new QTreeWidgetItem(heroM2);QTreeWidgetItem *z1 = new QTreeWidgetItem(heroZ1);QTreeWidgetItem *z2 = new QTreeWidgetItem(heroZ2);LiItem->addChild(l1);LiItem->addChild(l2);MinItem->addChild(m1);MinItem->addChild(m2);ZhiItem->addChild(z1);ZhiItem->addChild(z2);

QTableWidget控件

    //TableWidget控件//设置列数ui->tableWidget->setColumnCount(3);//设置水平表头ui->tableWidget->setHorizontalHeaderLabels(QStringList()<<"姓名"<<"性别"<<"年龄");//设置行数ui->tableWidget->setRowCount(5);//设置正文QStringList nameList;nameList <<"亚瑟"<<"赵云"<<"张飞"<<"关羽"<<"花木兰";QStringList sexList;sexList<<"男"<<"男"<<"男"<<"男"<<"女";for(int i=0;i<5;i++){int col=0;ui->tableWidget->setItem(i,col++,new QTableWidgetItem(nameList[i]));ui->tableWidget->setItem(i,col++,new QTableWidgetItem(sexList.at(i)));//int 转 Qstringui->tableWidget->setItem(i,col++,new QTableWidgetItem(QString::number(18+i)));}
    1. 其他控件介绍
      1. stackedWidget  栈控件
        1. ui->stackedWidget->setCurrentIndex(1);
      2. 下拉框
        1. ui->comboBox->addItem("奔驰");
      3. QLabel 显示图片
        1. ui->lbl_Image->setPixmap(QPixmap(":/Image/butterfly.png"))
      4. QLabel显示动图  gif图片
        1. ui->lbl_movie->setMovie(movie);
        2. movie->start();
    //设置默认定位scrollAreaui->stackedWidget->setCurrentIndex(0);//scrollArea按钮connect(ui->ScrollArea,&QPushButton::clicked,[=](){ui->stackedWidget->setCurrentIndex(1);});//TabWidget按钮connect(ui->TabWidget,&QPushButton::clicked,[=](){ui->stackedWidget->setCurrentIndex(0);});//ToolBox按钮connect(ui->ToolBox,&QPushButton::clicked,[=](){ui->stackedWidget->setCurrentIndex(2);});//利用QLabel显示图片ui->lbl_Image->setPixmap(QPixmap(":/Image/butterfly.png"));//利用QLabel显示gif动图QMovie * movie = new QMovie(":/Image/mario.gif");ui->lbl_movie->setMovie(movie);movie->start();//开始播放

http://www.lryc.cn/news/2397960.html

相关文章:

  • C++ 内存泄漏检测器设计
  • 在 Linux 上安装 Nmap 工具
  • 从零打造AI面试系统全栈开发
  • 破局与进阶:ueBIM 在国产 BIM 赛道的差距认知与创新实践
  • 分布式流处理与消息传递——向量时钟 (Vector Clocks) 算法详解
  • 20250603在荣品的PRO-RK3566开发板的Android13下的命令行查看RK3566的温度
  • 帝可得 - 设备管理
  • FTXUI配置
  • Caliper压力测试
  • 【iOS安全】使用LLDB调试iOS App | LLDB基本架构 | LLDB安装和配置
  • 一、核心概念深入解析
  • python直方图
  • [特殊字符] Unity 性能优化终极指南 — Text / TextMeshPro 组件篇
  • Idea 配置 Maven 环境
  • git clone报错:SSL certificate problem: unable to get local issuer certificate
  • Kafka 如何保证不重复消费
  • SpringBoot整合MyBatis完整实践指南
  • RNN结构扩展与改进:从简单循环网络到时间间隔网络的技术演进
  • docker中,容器时间和宿机主机时间不一致问题
  • Unity Shader编程】之高级纹理
  • 类 Excel 数据填报
  • vscode调试stm32,Cortex Debug的配置文件lanuch.json如何写,日志
  • Office文档图片批量导出工具
  • 【iOS】ARC 与 Autorelease
  • 人工智能在智能零售中的创新应用与未来趋势
  • 业务材料——半导体行业MES系统核心功能工业协议AI赋能
  • docker部署命令行 — 启动一个 MySQL 数据库服务 并且把它的数据存储挂载到卷(volume)里
  • 铁电液晶破局 VR/AR:10000PPI 重构元宇宙显示体验
  • 2025年微信小程序开发:AR/VR与电商的最新案例
  • 从零开始,学会上传,更新,维护github仓库