一、部件
#include "widget.h"
#include "ui_widget.h"
#include <QPalette>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
this->setFixedSize(640,480); //设置固定大小
this->setWindowTitle("MyWindow");
// : 表示资源文件 / 表示路径前缀 favicon.ico 资源文件名
this->setWindowIcon(QIcon(":/miumiu.ico"));
//设置背景图片
QPalette pal = this->palette(); //调色板
//设置画刷 scaled函数(缩放)
pal.setBrush(QPalette::Window , QBrush(QPixmap(":/BG.png").scaled(width(),height())));
//设置调色板
this->setPalette(pal);
/*
* 构造一个按钮,指定父对象 this,作用是让该按钮出现在当前窗口界面
* QPushButton *btn1 = new QPushButton(this);
* QPushButton *btn1 = new QPushButton();
* btn1->setParent(this);
* btn1->setText("按钮"); //设置按钮文本
* 设置按钮的尺寸
* btn1->setFixedSize(120,120);
* 设置按钮图标
* btn1->setIcon(QIcon(QPixmap(":/favicon.ico").scaled(btn1->width(),btn1->height())));
*/
QPushButton *btn2 = new QPushButton(QIcon(":/miumiu.ico"),"按钮2",this);
btn2->setFixedSize(60,60);
btn2->setStyleSheet("QPushButton"
"{"
"color: blue"
"border-radius: 30px;"
"background-color: white;"
"}"
"QPushButton:hover"
"{"
"border-radius: 30px;"
"background-color: green;"
"color: red;"
"}");
//移动按钮到某个位置
btn2->move(QPoint(260,210));
connect(btn2 , &QPushButton::clicked , this , [&](){
qDebug() << "bt2";
});
}
Widget::~Widget()
{
delete ui;
}
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
//lineEdit 显示属性 不输出
ui->lineEdit->setEchoMode(QLineEdit::NoEcho);
//显示属性:密码模式
ui->lineEdit_2->setEchoMode(QLineEdit::Password);
//密码模式,不可修改
ui->lineEdit_3->setEchoMode(QLineEdit::PasswordEchoOnEdit);
ui->lineEdit_4->setPlaceholderText("testtest");
/**
* 1、信号带参数目的: 为了向槽函数传递数据
* 2、槽函数如果需要 信号传递的数据,就必须要设计与信号相同的形参来接收
* 3、槽函数的参数个数必须 小于或等于信号的参数个数
* 4、textChanged 参数 ———— const QString &
*/
//文本改变触发
connect(ui->lineEdit , &QLineEdit::textChanged , this , [&](const QString &s){
ui->label->setText(s);
});
//选中触发
connect(ui->lineEdit_2 , &QLineEdit::selectionChanged , this , [&](){
//selectedText() 获取选中的文本数据
ui->label_2->setText(ui->lineEdit_2->selectedText());
});
//编辑完成触发
connect(ui->lineEdit_3 , &QLineEdit::editingFinished , this , [&](){
ui->label_3->setText( ui->lineEdit_3->text());
});
}
Widget::~Widget()
{
delete ui;
}
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
setFixedSize(640,480);
setWindowTitle("Label");
QLabel *label = new QLabel(this);
label->setFixedSize(100,40);
label->setText("hello world");
label->setStyleSheet("background-color:green;");
label->setAlignment(Qt::AlignCenter); //设置居中对齐
QLabel *label2 = new QLabel(this);
QLabel *label3 = new QLabel(this);
label2->setFixedSize(320,240);
label3->setFixedSize(320,240);
label2->move(0,label->height());
label3->move(label2->width(),label->height());
//label2->setStyleSheet("background-color: red;");
label3->setScaledContents(true); //设置内容显示自适应
label3->setPixmap(QPixmap(":/BG.png"));
mv = new QMovie(this);
mv->setFileName(":/mv.gif"); //设置mv路径
label2->setScaledContents(true); //自适应
label2->setMovie(mv); //设置动画
mv->start(); //播放动画
}
Widget::~Widget()
{
delete ui;
}
二、部件属性/信号
-
信号:
- clicked():点击信号,按钮被点击时触发。
- pressed(): 按下操作,按钮被按下时触发。
- released(): 松开按钮触发
-
2、QLineEdit属性+信号
属性:
- echoMode:NoEcho 不输出、Normal 正常输出、Password 密码输出 、PasswordEchoOnEdit 密码输出且不可修改
- PlaceholderText:输入框提示
信号:
- editingFinished():编辑结束触发,回车、失去焦点(tab切换组件或者鼠标点击其他组件等)时触发。
- returnPressed():也是编辑结束触发,仅限于回车或换行等,失去焦点不触发
- selectionChanged():选中改变的时候触发,当用户拖动鼠标,选取文本的时候触发
- textChanged(const QString &text):当文本被改变的时候触发(通过程序修改文本内容也会触发)
- textEdited(const QString &text):当文本被改变触发,只限于用户输入改变文本的时候触发
//lineEdit 显示属性 不输出
ui->lineEdit->setEchoMode(QLineEdit::NoEcho);
//显示属性:密码模式
ui->lineEdit_2->setEchoMode(QLineEdit::Password);
//密码模式,不可修改
ui->lineEdit_3->setEchoMode(QLineEdit::PasswordEchoOnEdit);
//输入提示
ui->lineEdit_4->setPlaceholderText("testtest");

-
3、QLabel属性
属性:
- pixmap:画布属性,可以用来显示图片或movie等。
- scaledContents:自适应显示(画布图片等根据Label的尺寸自动适应显示)
三、添加资源文件(本文使用Qt 17)
1、右键项目——>添加新文件

2、选择Qt Resource File

3、选择要加载的资源路径位置和设置文件名

4、设置前缀、添加文件

5、使用资源文件
//现有的资源路径前缀为":/" 冒号表示为资源文件 斜杠是我们的前缀
label3->setPixmap(QPixmap(":/BG.png"));