【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佈局:

窗口效果:

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章