QT简单介绍
day1
1、QWidget:
-->setFixedSize(int w, int h); --->设置窗口的固定大小
-->setMaximumSize(); --->设置窗口尺寸的最大值
-->setMinimumSize(); --->设置窗口尺寸的最小值
-->setWindowsTitle(QString); ---> 设置窗口的标题
-->setWindowsIcon(QIcon); ---> 设置窗口的图标
-->setLayout(QLayout*) --->设置窗口的布局
//this可以省略,因为在构造函数类
this->setFixedSize(368,480);
this->setMaximumSize(500,400); //设置伸缩的宽高最大值
this->setMinimumSize(360,400); //设置伸缩的宽高最小值
this->setWindowTitle("卢琦");
this->setWindowIcon(QIcon(":/67/67.jpg"));//在设置窗口图片时要加入QIcon头文件,和创建一个资源来装照片
运行结果:
2、QDebug:
qDebug() << QString,string,int.... --- 打印
3、QPushButton:
-->setText() ---> 设置按钮上的文本
-->text() ---> 获取按钮上的文本
-->setIcon() ---> 设置按钮上的图标
-->setFlat() ---> 设置透明
-->setFont() ---> 设置字体
-->setEnable(bool) ---> 设置是否可用
-->setFixedSize(int w, int h); --->设置按钮的固定大小
-->setMaximumSize(); --->设置按钮尺寸的最大值
-->setMinimumSize(); --->设置按钮尺寸的最小值
pb = new QPushButton;
// pb->setText("爱你");
QString str = pb->text();
qDebug()<<str;
pb->setIcon(QIcon(":/67/hg.jpg"));
pb->setFlat(false);
pb->setEnabled(true);
pb->setFixedSize(100,80);
pb->setMaximumSize(120,86);
pb->setMinimumSize(23,28);
QVBoxLayout *vbox = new QVBoxLayout;
vbox->addWidget(pb);
setLayout(vbox);
4、QLineEdit: 行编辑器
-->setText() --->设置行编辑器的内容
-->text() --->获取行编辑器的内容
-->setFont() --->设置字体
-->setAlignment(Qt::AlignRight); //设置对齐
QFont font("Times",20);
le = new QLineEdit;
le->setText("嘻嘻"); //设置行编辑器的内容
QString teq = le->text();
le->setFont(font);
le->setAlignment(Qt::AlignCenter);
运行结果:
5、布局方式:
QHBoxLayout: 水平布局
QVBoxLayout: 垂直布局
--->addWidget(QWidget*) --->添加控件
--->addLayout(QLayout*) --->添加布局
--->addStretch() ----> 添加弹簧
QGridLayout: 栅格布局
--->addWidget(QWidget*, int row, int column, int rowSpin, int ncolumnSpin) --->添加控件, 行, 列, 占几行,占几列
6、信号与槽:
工作机制:当信号与槽函数进行关联时,当信号产生就会自动调用关联的槽函数
信号与槽的关联方式:
1) 一对一: 一个信号对应一个槽函数
2) 一对多: 一个信号可以对应多个槽函数,当信号产生时所对应的所有槽函数都会被调用,调用顺序不定
3) 多对一: 多个信号可以对应同一个槽函数, 这些信号中任意一个产生,槽函数都会被调用一次
4) 信号1可以和信号2关联,当信号1产生时信号2自动产生,但是信号2产生时信号1不会产生
5)槽函数的参数:
槽函数是由信号产生时,系统自动调用的。槽函数被调用时,是由信号向其传参,所以槽函数的参数个数<=信号的参数
槽函数如果有参,信号的参数按槽函数的参数个数依次传递给槽函数的参数
6)解除关联:disconnect
connect(QObject *sender, signal, QObject *context, slot);
谁产生信号, 信号, 谁调用槽函数处理信号, 槽函数
//le是信号量,get_data()是槽函数
connect(le,SIGNAL(textChanged(QString)),this,SLOT(get_data()));
day2
1、QLabel — 标签
-->setText(QString) --- 设置内容
-->setMaximunSize() --- 设置尺寸最大值
-->setMinimunSize() --- 设置尺寸最小值
-->setFixedSize() --- 设置尺寸固定值
-->setPixmap(QPixmap) --- 设置图片
-->setScaledContents(bool) --- 设置自适应
la = new QLabel;
la->setText("412与你相遇"); //文字和图片一起时,那个在后面就会把前面的覆盖了
la->setMaximumSize(680,480);
la->setFixedSize(450,320);
la->setPixmap(QPixmap(":/pic/3.jpg"));
la->setScaledContents(true);
QVBoxLayout *vbox = new QVBoxLayout;
vbox->addWidget(la);
setLayout(vbox);
运行结果:
2、QLineEdit: 行编辑器
-->setText(QString) --- 设置内容
-->QString text() ---> 获取内容
-->setAligment() --->设置对齐方式
-->setReadOnly() --->设置只读
-->setInputMask(QString) --->设置输入格式
-->setEchoMode(QLineEdit::Normal...) -->设置显示模式
le = new QLineEdit;
le->setText("蓦然回首还是你");
QString str = le->text();
qDebug()<<str;
le->setAlignment(Qt::AlignCenter);
le->setReadOnly(false);
//le->setInputMask("sx");
le->setEchoMode(QLineEdit::Normal);
运行结果
3、QTextEdit: 文本编辑器
--> setText(QString) --- 设置内容
--> QString toPlainText() ---> 获取纯文本
--> QString toHtml() --->获取内容(带格式)
te = new QTextEdit("昨日我没醉,只是为你心醉");
QString tex = te->toPlainText();
//QString tex = te->toHtml();
qDebug()<<tex;
运行结果:
4、QCheckBox:复选框
---> clicked(bool) --- 产生点击信号
---> isChecked() --- 判断是否选中
ch = new QCheckBox("记住密码");
运行结果:
5、新建界面:
项目右键--》添加新文件-->c++中class--》选择需要继承的基类,定义派生类
跳转: new新的界面 --> show()显示界面
close() --- 关闭界面
6、QRadioButton: 单选按钮
---> clicked(bool) --- 产生点击信号
---> isChecked() --- 判断是否选中
rb = new QRadioButton("密码");
7、QGroupBox: 分组框
-->setLayout() --- 添加布局
8、资源文件添加步骤:
//1.右键选中项目中的添加新文件
//2.选择QT中的 Resources
//3.新建资源文件名qrc
//4.打开资源文件,右键qrc.qrc选择open in Editor
//5.资源文件中先添加前缀,在添加图片
day3
1、QComboBox: 组合框
--->addItem() --- 添加item
--->addItems(QStringList) ---添加多个item
--->insertItem(int index, item) ---在index位置插入item
--->currentIndexChanged(int) ---> 当索引改变时产生信号
--->currentStringChanged(int) ---> 当选择内容改变时
--->currentStringChanged(QString)
--->int currentIndex() --- 获取当前索引
le = new QLineEdit("A"); //单行文本编辑器初始值为“A”
cbb = new QComboBox;
cbb->addItem("A");
cbb->addItem(QIcon(":/prc/art/1.jpg"),"open");
cbb->addItem(QIcon(":/prc/art/2.jpg"),"up");
cbb->setBaseSize(234,545);
QVBoxLayout *vbox = new QVBoxLayout;
vbox->addWidget(le);
vbox->addWidget(cbb);
setLayout(vbox);
connect(cbb,SIGNAL(currentIndexChanged(QString)),le,SLOT(setText(QString)));
运行结果:
2、QListWidget: 列表部件
--->addItem() --- 添加item
--->addItems(QStringList) ---添加多个item
--->insertItem(int index, item) ---在index位置插入item
--->int currentItem() --- 获取选中的item
--->takeItem(int row); ---> 取到item
pb1 = new QPushButton(">>