1 Qt编码方式(unicode)
QTextCodec* coder =
QTextCodec::codecForName("GBK");
coder->toUnicode("中文字符串");
2 QT信号和槽机制
class XX:public QObject{
Q_OBJECT
signals:
void sig_func();
private slots:
void slot_func();
};
QObject::connect(发送对象,信号函数,接收对象,槽函数)
3 容器窗口(父窗口)
QWidget
QMainWindow
QDialog
==========================
今天:
一 面向对象的Qt编程
《案例》显示系统时间
..
二 QT设计师的使用
《案例》使用designer重构加法计算器
1)创建工程目录
mkdir Calculator2
cd Calculator2
2)输入"designer"进入设计师界面
-->选择父窗口 "Dialog without buttons"
-->创建
3)设计UI界面,得到文件“CalculatorDialog.ui”
push Button
--》objectName :m_btnCalc
--》text:"="
--》font:点大小(18),加粗
--》enabled:去掉对号
line Edit
--》objectName :m_editX
--》font:点大小(18)
--》alignment:水平(alignRight)
line Edit
--》objectName :m_editY
--》font:点大小(18)
--》alignment:水平(alignRight)
line Edit
--》objectName :m_editZ
--》font:点大小(18)
--》alignment:水平(alignRight)
--》readOnly:打对号
label
--》text:"+"
--》font:点大小(18)
设置父窗口:
--》windowTitle:计算器
--》objectName:CalculatorDialog
文件--》保存:CalculatorDialog.ui
4)将UI文件转换成“.h”头文件
uic CalculatorDialog.ui -o ui_CalculatorDialog.h
xxx.h主要内容:
class Ui_CalculatorDialog{
public:
图形组件声明;
setupUi(QDilaog* dialog){//UI初始化
//new图形组件
//设置图形组件属性
}
};
namespace Ui{
class CalculatorDialog:
public Ui_CalculatorDialog{};
}
Ui::CalculatorDialog <=等价=>Ui_CalculatorDialog
5)使用"ui_CalculatorDialog.h"方法
第一种方法:
class A:public QDialog,public Ui::CalculatorDialog
{
//将图形组件创建和初始化相关代码,继承过来直接用
A(void){
setupUi(this);
}
};
第二种方法:
class A:public QDialog{
public:
A(void):ui(new Ui::CalculatorDialog){
ui->setupUi(this);
}
private:
Ui::CalculatorDialog *ui;
}
========================
《案例》登陆对话框
1)创建工程Login
2)设计UI,得到LoginDialog.ui
3)转换成头文件
uic LoginDialog.ui -o ui_LoginDialog.h
4)编写代码...
5)构建工程...
=========================
三 Qt创造器使用(qtcreator)
《案例》再次重构加法计算器
1)在终端启动qtcreator
2)点击"new project"
选择Applicaiton-->Qt Widgets Appliaticon
3)输入项目名称Calculator3,指定项目存放路径
注:将来qtcreator会在指定目录下创建一个和项目名字相同的目录
4)设置类名CalculatorDialog,和选择一个父窗口
注:会自动创建和类名相对应头".h"文件,".cpp"源程序和".ui"文件
5)项目创建完成,会自动生成框架代码。
6)进入编辑界面,双击"CalculatorDialog.ui"文件进入设计师界面,使用设计师画UI。
注:设计ui界面时父窗口对象名字不能修改
练习:使用qtcreator重构登陆对话框案例