QT_day02
使用g++编译:
一. 改变值
QSlider 滑块类
void valueChanged(int value);
QSpinBox 微调框类
void setValue(int val);
槽函数如果不做连接使用,就是一个普通的成员函数。
带参的信号和槽没有默认值时,需要在连接时指定参数的类型。
changevalue.cpp
二. 加法器
2.1 version 1
在main函数中
2.2 version 2
使用C++方式(类)来组织代码
① 让类继承父窗口的类型
当前类 充当父窗口类型,做到类的可视化
② 截面中的组件 都作为这个类的成员变量
③ 类的头文件和实现文件分离
④ 如果类中有自定义的信号和槽,则需要在头文件中出现一个宏Q_OBJECT(非常重要)
注:如果忘记加Q_OBJECT后,加上后需要删除之前编译产生的文件,重新编译即可。
三. 显示时间
先让clicked()和一个无参的自定义槽函数绑定,在槽函数中发射 自定义信号, 自定义函数再和最终的setText(QString) 绑定。(线程中的数据可以通过自定义信号带出来)
QTimer 定时器类,可以定时发出timeout()信号。
五. 设计器的使用
加速界面的开发
鼠标改变组件的位置和大小。
方向键可以改变组件的位置,ctrl+方向键 可以微调。属性框可以调节具体的位置和大小。
shift+方向键 可以调整组件大小
Ctrl+shift+方向键,可以微调大小。
属性编辑器:可以改变组件的相关属性
对象查看器:查看对象之间的组织关系,对象名和对象关系
六. 如何使用ui文件
1. 把ui文件转换成.h文件: uic **.ui -o **.h
2. 定义自己的头文件来使用生成.h文件 (jfq.h)
3.写实现文件
创建界面 加载界面
访问界面数据使用ui即可
头文件adder.cpp
1 #ifndef ADDER_H 2 #define ADDER_H 3 #include "jfq.h" 4 #include <QDialog> 5 class Adder: public QDialog{ 6 Q_OBJECT 7 //定义一个界面指针 8 private: 9 Ui_Dialog *ui; 10 public: 11 Adder(); 12 //完成计算得槽函数 13 public slots: 14 void getRes(); 15 }; 16 17 #endif
实现文件 adder.cpp
1 #include "adder.h" 2 3 Adder::Adder():ui(new Ui_Dialog()) 4 { 5 //ui = new Ui_Dialog(); 6 ui->setupUi(this); 7 //访问界面相关的数据通过ui即可 8 connect(ui->equ, SIGNAL(clicked()), this, SLOT(getRes())); 9 } 10 11 void Adder::getRes() 12 { 13 ui->res->setText(QString::number(ui->add->text().toDouble() + ui->added->text().toDouble())); 14 }
4. 写测试文件
testadder.cpp
1 #include <QApplication> 2 #include "adder.h" 3 4 int main(int argc, char** argv) 5 { 6 QApplication app(argc, argv); 7 Adder adder; 8 adder.show(); 9 10 return app.exec(); 11 }