Qt学习基础1.8

本文介绍了Qt编程的基础知识,包括如何添加资源文件、使用模态与非模态对话框、标准对话框的种类及其用法,以及详细讲解了常用控件如按钮组、QLabel、QTableWidget等的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、添加资源文件

1、将图片文件 拷贝到项目位置下

2、右键项目->添加新文件->Qt->Qt resourse File->给资源文件起名

3、res生成 res.qrc

4、open in editor 编辑资源

5、添加前缀 添加文件

6、使用 : " : + 前缀名 + 文件名

二、模态对话框与非模态对话框

1、模态对话框:不可以对其他窗口进行操作

2、非模态对话框:可以对其他窗口进行操作,防止一闪而过,创建到堆区

模态对话框创建:

QDialog dlg(this);
resize(400,400);
dlg.exec();

非模态对话框:

QDialog *dlg = new QDialog(this);
dlg->resize(200,200);
dlg->show();
dlg->setAtribute(Qt::WA_DeleteOnClose);//delete dlg,保证内存不会泄漏,55号属性

 三、标准对话框

所谓标准对话框,是Qt内置得一系列对话框,用于简化开发。事实上,有很多对话框都是通用的,比如打开文件、设置颜色、打印设置等。这些对话框在所有程序中几乎相同,因此没有必要在每一个程序中都自己实现这么一个对话框。

Qt内置的对话框大致分为一下几类:

  • QColorDialog:            选择颜色
  • QFileDialog:               选择文件或目录
  • QFontDialog:              选择字体
  • QInputDialog:             允许用户输入一个值,并将其值返回
  • QMessageBox            模态对话框,用于显示信息、询问问题等
  • QPageSetupDialog     为打印机提供纸张相关的选项
  • QPrintDialog                打印机设置
  • QPrintPreviewDialog   打印预览
  • QProgressDialog         显示操作过程

1、QColorDialog框常用方法:

QColor color = QColorDialog::getColor(QColor(255,0,0));
qDebug() << "r=" << color.red() << "g=" <<color.green() << "b=" <<color.blue();

 2、QFileDialog常用方法:

//打开文件且输出路径
QString str=QFileDialog::getOpenFileName(this,"对话框标题","默认打开路径","过滤文件格式:*+后缀名");
qDebug()<< str;


3、QFontDialog常用方法:

bool flag;
QFont font= QFontDialog::getFont(&flag,QFont("华文彩云",36);

 四、常用控件-按钮组

QPushButton  常用按钮

QToolButton  工具按钮 用于显示图片,如果想显示文字,修改风格:toolButtonStyle,凸起风格 autoRaise

radioButton   单选按钮,设置默认:ui->rdb_man->setChecked(true);

checkBox      多选按钮,监听状态:2选中,1半选  0未选中

QListWidget 控件

QListWidgetItem *item =new QListWidgetItem("锄禾日当午");//一行内容
ui->listWidget->addItem(item);
item->setTextAlignment(Qt::AlignHCenter);//文字水平居中

可以利用addItems 一次性添加整个诗内容:

QStringList list;//容器
list << "锄禾日当午" <<"汗滴禾下土" << "谁知盘中餐" <<"粒粒皆辛苦";
ui->listWidget->addItems(list);

QTreeWidget树控件

//QTreeWidget使用
      //设置水平头
      ui->treeWidget->setHeaderLabels(QStringList()<<"英雄" <<"英雄介绍");

      QTreeWidgetItem *item = new QTreeWidgetItem(QStringList()<<"力量");//一行
      QTreeWidgetItem *item1 = new QTreeWidgetItem(QStringList()<<"敏捷");//一行
      QTreeWidgetItem *item2 = new QTreeWidgetItem(QStringList()<<"智力");//一行
      //加载顶层节点
      ui->treeWidget->addTopLevelItem(item);
      ui->treeWidget->addTopLevelItem(item1);
      ui->treeWidget->addTopLevelItem(item2);
      //增加子节点(addChild)
      QStringList hero;
      hero << "刚被猪" <<"前排塔克,能在吸收伤害的同时造成可观的范围输出";
      QTreeWidgetItem *one = new QTreeWidgetItem(hero);
      item->addChild(one);

      QStringList hero1;
      hero1 << "月骑士" <<"中排物理输出,可以使用分裂利刃攻击多个目标";
      QTreeWidgetItem *one1 = new QTreeWidgetItem(hero1);
      item1->addChild(one1);

      QStringList hero2;
      hero2 << "巫医" <<"后排辅助法师,可以使用奇特的巫术诅咒敌人与治疗队友";
      QTreeWidgetItem *one2= new QTreeWidgetItem(hero2);
      item2->addChild(one2);

结果如下图所示: 

QTabelWidget控件

//tabelWidget控件
//设置列数
ui->tableWidget->setColumnCount(3);

//设置水平表头
ui->tableWidget->setHorizontalHeaderLabels(QStringList() <<"姓名" << "性别" << "年龄");

//设置行数
ui->tableWidget->setRowCount(2);

//设置正文
ui->tableWidget->setItem(0,0,new QTableWidgetItem("内容));
QStringList nameList;
nameList << "内容1" << "内容2" << "内容3" ;

QLsit<QString> sexList;
sexList<<"男"<< "女" ;

//将内容设置到表中
for(int i=0;i<2 ; i++)
{
   int co1=0;
   ui->tableWidget->setItem(i,col++, new QTableWidgetItem(nameList[i]);
   ui->tableWidget->setItem(i,col++, new QTableWidgetItem(sexList.at[i]);
   int 转 QString
   ui->tableWidget->setItem(i,col++, new QTableWidgetItem(QString::number(i+18)));
}
   

 

五、常用控件介绍:

stackedWidget 栈控件

ui->stackedWidget->setCurentIndex(1);

ComboBox 下拉框控件

ui->comboBox->addItem("内容");

QLabel 显示图片 

ui->lable->setPixmap(QPixmap("图片路径“));

QLabel 显示动态图  gif图

QMovie *move =new QMovie("E:\\picture\\hs.gif");
      ui->label->setMovie(move);
      move->start();
 
 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值