总结:
Qt程序的组成:应用程序类、窗口类。
查看类对应的模块:光标移动到类上 F1.
qmake += 模块的名称。
按钮操作
类名:QPushButton
设置内容:setText
移动按钮位置:move()
设置父窗口:setParent()
设置窗口大小:resize(), resizeFixed()
2.QT坐标系
坐标原点:左上角
x轴延伸的方向,向右递增;
y轴延伸的方向,向下递增。
2.信号和槽。
connect(Sender, &Sender::signal, Recv, Recv::slot)
发送信号的对象和处理槽函数的对象,两者是没有任何关系的两个对象。
参数1:信号发送者对象,类型:指针类型。
参数2:信号发出者发出的信号,类型:函数地址-》 &类名::信号名().
参数3:信号的接收对象(调用槽函数),类型:指针类型。
参数4:槽函数,信号接受者接收到信号后执行的动作,类型:函数地址-》 &类名::槽函数名()
eg:
class Me: public QObject {
Q_OBJECT
public:
Me(QObject *parent=0);
~Me();
signals:
void seeBeauty();//看美女
void molestBeauty();//调戏美女
void writeLoveLetter(QString text);//写情书
void weituoLoveLetter(QString text);//委托写情书
public slots:
void mouthWatering(); //流口水
}
class Beauty: public QObject {
Q_OBJECT
public:
Beauty(QObject *parent=0);
~Beauty();
signals:
void sendLetter(QString text);//发信件,帮忙发送。
public slots: //槽函数
void mouthWatering();//流口水
void beatSomebody(); //打人
void answer();//回复-拒绝
void answer(QString text);//回复-同意
}
Me wo;
Beauty sweet; //小紫
Beauty sweet2; //小红
//1.我看到美女后,我流口水。 自己发给自己信号,自己接收。
connect(&wo, &Me::seeBeauty, &wo, &Me::mouthWatering);
//2.我调戏美女,美女抽我。 我发信号,别人接收。
connect(&wo, &Me::molestBeauty, &sweet, &Beauty::beatSomebody);
//3.我给两个美女些情书,一个同意,一个拒绝。
//槽函数个数,< 信号的参数个数。
//3.1信号和槽重载的时候,需要使用函数指针。
//3.2同一个信号,可以发给多个槽函数。
void (Beauty::*slotAnser)() = &Beauty::answer; //函数指针1
connect(&wo, &Me::writeLoveLetter, &sweet, slotAnser);
void (Beauty::*slotAnser2)(QString) = &Beauty::answer; //函数指针2
connect(&wo, &Me::writeLoveLetter, &sweet2, slotAnser2);
//4.我拜托小红把情书交给他妹妹小紫,小紫说我喜欢会qt的程序员。
// 信号连接信号,间接传递。
connect(&wo, &Me::weituoLoveLetter, &sweet2, &Beauty::sendLetter);
// 小红sweet2, 将信件转给小紫sweet 进一步处理---回复。
connect(&sweet2, &Beauty::sendLetter, &sweet, slotAnser2);








网友评论