【Qt学习】网课P23-P28 各种控件的使用

0421 P23  02登录窗口布局

界面的布局:

使用widget进行布局:水平、垂直、栅格

给用户名、密码、登录、退出按钮布局

使用弹簧:水平、垂直弹簧

首先拖拽几个控件:

 

编译生成程序,查看结果,发现问题:页面的布局不随着窗口大小变动位置。

使用弹簧控件,使用widget,使用Group Box

 

输入密码:选择输入时不显示明文

 

效果展示:

 

 

09控件-按钮组:

通过拖拽选择按钮的功能

 

给按钮添加图标:

 

拖拽按钮和代码解和,在List Widget中写诗:

 

在ui界面中,选中刚才拖得listWidget,查看一下名字是:listWidget,要在编辑(写代码)界面用到

 

代码:

#include "widget.h"

#include "ui_widget.h"



Widget::Widget(QWidget *parent) :

QWidget(parent),

ui(new Ui::Widget)

{

ui->setupUi(this);



//单选按钮的默认值

ui->radioButton_man->setChecked(true);



//利用listwidget写诗

QListWidgetItem* item = new QListWidgetItem("君不见黄河之水天上来,奔流到海不复回。");

//将一行诗放入到listWidget控件中

ui->listWidget->addItem(item);

item->setTextAlignment(Qt::AlignHCenter);//参数:ananF1进入帮助手册,找参数类型



//QStringList QList<QString>

QStringList list;

list<<"君不见高堂明镜悲白发,朝如青丝暮成雪"<<"人生得意须尽欢⑷,莫使金樽空对月"<<"天生我材必有用,千金散尽还复来";

ui->listWidget->addItems(list);



}



Widget::~Widget()

{

delete ui;

}

窗口效果显示:

 

 

 

0422P26 11QTreeWidget得数控件

新建项目,在ui中拖拽TreeWidget控件

 

代码:

Widget::Widget(QWidget *parent) :

QWidget(parent),

ui(new Ui::Widget)

{

ui->setupUi(this);



//treeWidget控件得使用

//设置水平头

ui->treeWidget->setHeaderLabels(QStringList()<<"英雄"<<"英雄介绍");



QTreeWidgetItem * ad_item = new QTreeWidgetItem(QStringList() << "射手");

QTreeWidgetItem * ci_item = new QTreeWidgetItem(QStringList() << "刺客");

QTreeWidgetItem * tank_item = new QTreeWidgetItem(QStringList() << "坦克");

//加载顶层得节点

ui->treeWidget->addTopLevelItem(ad_item);

ui->treeWidget->addTopLevelItem(tank_item);

ui->treeWidget->addTopLevelItem(ci_item);





//追加子节点

QStringList hero_ad_1;

hero_ad_1 << "艾希" <<"后排射手";

QTreeWidgetItem *ad_1 =new QTreeWidgetItem(hero_ad_1);

ad_item->addChild(ad_1);



QStringList hero_ad_2;

hero_ad_2 << "卡莉斯塔" <<"后排射手";

QTreeWidgetItem *ad_2 =new QTreeWidgetItem(hero_ad_2);

ad_item->addChild(ad_2);



QStringList hero_tank_1;

hero_tank_1 << "熔岩巨兽" <<"后排石头人辅助";

QTreeWidgetItem *tank_1 =new QTreeWidgetItem(hero_tank_1);

tank_item->addChild(tank_1);



QStringList hero_tank_2;

hero_tank_2 << "盖伦" <<"德玛西亚";

QTreeWidgetItem *tank_2 =new QTreeWidgetItem(hero_tank_2);

tank_item->addChild(tank_2);



QStringList hero_ci_1;

hero_ci_1 << "劫" <<"AD刺客";

QTreeWidgetItem * ci_1 = new QTreeWidgetItem(hero_ci_1);

ci_item->addChild(ci_1);

}

 

窗口程序展示:

 

 

P27 12 QTablewidget控件 

创建新项目,进入ui编辑,拖拽控件Table Widget

找到控件名称:TableWidget,编程一会用到

 

 

代码:

Widget::Widget(QWidget *parent) :

QWidget(parent),

ui(new Ui::Widget)

{
ui->setupUi(this);

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


//设置水平表头

ui->tableWidget->setHorizontalHeaderLabels(QStringList()<<"英雄"<<"位置"<<"年龄");


//设置行数:5

ui->tableWidget->setRowCount(5);


//设置正文

//ui->tableWidget->setItem(0,0,new QTableWidgetItem("亚瑟"));

QStringList name_list;

name_list <<"亚瑟"<<"安琪拉"<<"后裔"<<"赵云"<<"李元芳";


QList<QString> area_list;

area_list <<"上路"<<"中路"<<"发育路"<<"打野"<<"打野";


for(int i = 0;i < 5;i++)

{

int col = 0;

ui->tableWidget->setItem(i,col++,new QTableWidgetItem(name_list[i]));

ui->tableWidget->setItem(i,col++,new QTableWidgetItem(area_list.at(i)));


//int 转QString

ui->tableWidget->setItem(i,col++,new QTableWidgetItem(QString::number(i+8)));


}


}

效果展示:

 

 

P28 13 其他控件介绍

 

代码:

Widget::Widget(QWidget *parent) :

QWidget(parent),

ui(new Ui::Widget)

{

ui->setupUi(this);



//栈控件得使用

//默认栈控件的定位

ui->stackedWidget->setCurrentIndex(0);



connect(ui->btn_tab,&QPushButton::clicked,[=](){

ui->stackedWidget->setCurrentIndex(0);

});//



connect(ui->btn_scroll,&QPushButton::clicked,[=](){

ui->stackedWidget->setCurrentIndex(1);

});



connect(ui->btn_tool,&QPushButton::clicked,[=](){

ui->stackedWidget->setCurrentIndex(2);

});



//下拉框

ui->comboBox->addItems(QStringList()<<"123"<<"456"<<"789");



//利用Qlable显示图片

ui->label->setPixmap(QPixmap(":/Image/road2.jpg"));



//利用Qlable显示gif动图

QMovie * eat_movie = new QMovie(":/Image/eat.gif");

ui->label_gif->setMovie(eat_movie);

//播放动图

eat_movie->start();



}

ui布局:

窗口效果:

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值