Qt学习之路

QT运用过程中官方文档时使用的次数比较多,但是切换到帮助中寻找函数用法油田麻烦,当鼠标光标在上面时,可以直接使用F1建之间打开帮助文档。但这过程中有一个问题就是当热键冲突时,比如我的电脑上F1是静音,此时可以使用Fn+F1打开即可。

Qmainwindow和Qdialog是QWidget的子类

#include "mainwindow.h"
#include <QApplication>//应用程序头文件

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);//只能有一个
    MainWindow w;//窗口的对象
    w.show();

    return a.exec();//进入消息循环机制
}

快捷键:
整行移动:ctrl+shift+上/下
运行:ctrl+r
帮助文档:F1
自动对齐:ctrl+i
对应.cpp&&.h相互切换F4
signal:
signal必须是void 类型的,槽函数为了和signal保持一致,也必须是void类型的,自定义的信号可以通过emit(发射信号确定)

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QPushButton>
#include <QMainWindow>
#include <QLabel>
#include "subwidget.h"
namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
    void call();
    void dealSub();
signals:
   void sendsignals();

private:
    Ui::MainWindow *ui;
    QPushButton  wi;
    Subwidget subwi;
};

#endif // MAINWINDOW_H
#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    wi.setParent(this);
    wi.move(100,100);
    wi.resize(50,50);
    wi.setText("子窗口");
    resize(500,500);
    connect(&wi, &QPushButton::released, this, &MainWindow::call);
    connect(&subwi, &Subwidget::sendsignal, this, &MainWindow::dealSub);
    resize(500,500);
    /*
    信号发出者,指针类型
    处理信号 &发送者的名字::信号名字
    信号接收者, 指针类型
    处理信号 &接收者的名字::槽函数
    */
    /*
    自定义槽,槽函数需要与信号保持一致,
    由于信号没有返回值,所以槽函数没有返回值
    */
}

void MainWindow::dealSub()
{
    subwi.hide();
    this->show();
}

void MainWindow::call()
{
    subwi.show();
    hide();
}
MainWindow::~MainWindow()
{
    delete ui;
}
#ifndef SUBWIDGET_H
#define SUBWIDGET_H

#include <QWidget>
#include <QPushButton>
class Subwidget : public QWidget
{
    Q_OBJECT
public:
    explicit Subwidget(QWidget *parent = nullptr);
    QWidget subw;
    void sendplot();
    QPushButton subButton;
signals:
    void sendsignal();
public slots:
};

#endif // SUBWIDGET_H
#include "subwidget.h"

Subwidget::Subwidget(QWidget *parent) : QWidget(parent)
{
    subButton.setParent(this);
    subButton.setText("主窗口");
    connect(&subButton,&QPushButton::released,this,&Subwidget::sendplot);
    resize(500,500);
}
void Subwidget::sendplot()
{
    emit sendsignal();
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值