Qt Study
创始人
2024-05-28 11:49:23
0

按钮->点击->窗口->关闭窗口

connect(信号的发送者,发送具体信号,信号的接收者,信号的处理);

信号处理函数称为槽

信号槽的优点,松散耦合,信号发送端和接收端本身是没有关联的,通过connect连接将两端耦合在一起

//点击按钮,关闭当前窗口
connect(myBtn, &QPushButton::clicked, this, &QWidget::close);

自定义信号和槽

teacher.h

#ifndef TEACHER_H
#define TEACHER_H#include class Teacher : public QObject
{Q_OBJECT
public:explicit Teacher(QObject *parent = nullptr);//自定义信号写到signals下//返回值类型为void,只需要声明,不需要实现//可以有参数,可以重载
signals:void hungry();};#endif // TEACHER_H

student.h

#ifndef STUDENT_H
#define STUDENT_H#include class Student : public QObject
{Q_OBJECT
public:explicit Student(QObject *parent = nullptr);//可以写到public下//返回值类型为void,需要声明,也需要实现//可以有参数,也可以重载void please();signals:};#endif // STUDENT_H

student.cpp

#include "student.h"
#include 
Student::Student(QObject *parent) : QObject(parent)
{}
void Student::please()
{std::cout << "please teacher eat dinner" << std::endl;
}

mywidget.h

#ifndef MYWIDGET_H
#define MYWIDGET_H#include 
#include "teacher.h"
#include "student.h"
class myWidget : public QWidget
{Q_OBJECTpublic:myWidget(QWidget *parent = nullptr);Teacher *t = new Teacher(this);Student *s = new Student(this);~myWidget();
};
#endif // MYWIDGET_H

mywidegt.cpp

回调函数:在函数内部将被调函数名转换为地址作为参数供系统调用

信号可以连接信号

信号与槽的连接可以是一对多、多对一

信号的参数可以比槽多,但对应的参数在类型和顺序上要一致 (对于不匹配的,可以用匿名函数来调用相应的槽)

匿名函数的使用

  btn->show();connect(btn, &QPushButton::clicked, this, [=](){QWidget *window1 = new QWidget;window1->show();btn->setText("close");});

#include "mywidget.h"myWidget::myWidget(QWidget *parent): QWidget(parent)
{connect(this->t, &Teacher::hungry, this->s, &Student::please);emit(this->t->hungry());//    重载时,通过函数指针传递函数地址
//    //定义某类中函数的函数指针,要加类名以表作用域
//    void (Teacher:: *hungryptr) (std::string name) = &Teacher::hungry;
//    void (Student:: *pleaseptr) (std::string name) = &Student::please;
//    connect(this->t, hungryptr, this->s, pleaseptr);
//    emit(this->t->hungry("good food"));}myWidget::~myWidget()
{
}

菜单栏与工具栏

#include

#include

    QMenuBar *menubar = new QMenuBar(this); //菜单栏QMenu *menu1 = new QMenu("file"); // 菜单menu1->addAction("new");menu1->addAction("open");menubar->addMenu(menu1);menubar->move(200, 300);QToolBar *toolbar = new QToolBar(this); // 工具栏toolbar->addAction("new");toolbar->addAction("open");

自定义对话框

模态对话框:不可以对其他窗口进行操作

非模态对话框:可以对其他窗口进行操作

#include

        // 模态QDialog log1(this);log1.resize(100, 200);log1.exec();// 非模态,用指针建立,存储在堆上,如果存在栈上匿名函数执行完就释放了// 会出现一闪而过的情况,模态的不需要QDialog *log2 = new QDialog(this);log2->resize(100, 200);log2->show();log2->setAttribute(Qt::WA_DeleteOnClose); //关闭时释放内存,不然会内存泄漏

标准对话框

#include

    QMessageBox::critical(this, "critical", "out of range");QMessageBox::information(this, "info", "text");// QMessageBox::question(this, "query", "answer", QMessageBox::Save | QMessageBox::No);if( QMessageBox::question(this, "query", "answer", QMessageBox::Save | QMessageBox::No) == QMessageBox::Save){std::cout << "select Save" << std::endl;}else{std::cout << "select No" << std::endl;}

布局

水平布局、垂直布局、栅格布局

使用时可以直接创建相应布局,将需要布局的item放入即可

或者创建Widget,放入item并选择相应布局

使用Horizontal spacer 或者 Vertical spacer来将label、按钮、编辑框等自适应窗口大小

QStringList

    QListWidgetItem *item = new QListWidgetItem("1111");QStringList strs;  // string liststrs << "111" << "222" << "333";ui->listWidget->addItem(item);ui->listWidget->addItems(strs);

相关内容

热门资讯

将进酒 李白拼音版 将进酒 李白拼音版  qiāng jìn jiǔ  将 进 酒  jūn bú jiàn huáng...
三字经全文句句赏析 三字经全文句句赏析  rén zhī chū xìng běn shàn xìng xiāng jì...
《陋室铭》作者 《陋室铭》作者  刘禹锡(772-842),字梦得,汉族,中国唐朝彭城(今徐州)人,祖籍洛阳,唐朝文...
同儿辈赋未开海棠原文 同儿辈赋未开海棠原文  同儿辈赋未开海棠原文:  元好问  原文:  枝间新绿一重重,小蕾深藏数点红...
王之涣《登黄鹤楼》全文赏析 王之涣《登黄鹤楼》全文赏析  《登鹳雀楼》是唐代诗人王之涣(一作朱斌诗)创作的一首诗。人们对于王之涣...
诗经名篇 诗经名篇  《诗经》内容丰富,反映了劳动与爱情、战争与徭役、压迫与反抗、风俗与婚姻、祭祖与宴会,甚至...
岳阳楼记原文及翻译讲解 岳阳楼记原文及翻译讲解  原文  庆历四年春,滕子京谪(zhé)守巴陵郡。越明年,政通人和,百废具兴...
劝学诗/偶成原文、注释及赏析 劝学诗/偶成原文、注释及赏析  赏析,是一个汉语词汇,意思是欣赏并分析(诗文等),通过鉴赏与分析得出...
带拼音的《三字经》全文 带拼音的《三字经》全文  这篇文章适合刚学习拼音的小朋友们,带拼音的《三字经》全文,不仅能学习国学《...
复旦大学教授钱文忠谈《三字经... 复旦大学教授钱文忠谈《三字经》的现代意义  《三字经》是我国古代的儿童识字课本,是中国传统 的儿童启...
恨赋原文及译文 恨赋原文及译文  《恨赋》,南朝梁文学家江淹作。《恨赋》是六朝抒情骈赋中的名篇。全赋排章选句、哀恨绵...
烛之武退秦师原文以及翻译 烛之武退秦师原文以及翻译  《烛之武退秦师》载于《左传·僖公三十年》,题目为后人所加。内容讲述公元前...
诗人苏轼是哪一个朝代的 诗人苏轼是哪一个朝代的  诗人苏轼是我国北宋著名文学家、书法家、画家。诗人苏轼是哪一个朝代的,我们来...
表达思乡情感的诗词 表达思乡情感的诗词集锦  思乡的情感是每个人内心最深的感情,我们没啊抹去对家乡的思念,家乡同时也是我...
中秋对联 中秋对联大全  中秋节这样的明月晚上,古时候的才子佳人没有中秋晚会,也没有微信朋友圈,他们在这样的....
《三字经》读后感500字 《三字经》读后感范文500字  【第1篇】  “小宇,帮我倒杯水。”“才不要呢,我要看电视!”我不高...
骆驼祥子读后感1000字 骆驼祥子读后感1000字4篇  当阅读了一本名著后,大家一定对生活有了新的感悟和看法,让我们好好写份...
三字经拼音版 全文 三字经拼音版 全文  三字经是我们中华悠久的历史文化,是中华的瑰宝。三字经rén zh...
《离骚》全文对照翻译 入党誓词全文推荐度:安全文章推荐度:合同法全文推荐度:交通安全文章推荐度:诗朗诵《党旗颂》全文推荐度...
摩诘画原文 摩诘画原文  原文:  《摩诘画》  作者:黄庭坚  丹青王右辖,诗句妙九州。  物外常独往,人间无...