zoukankan      html  css  js  c++  java
  • Qt 窗体间传值(代码备份)

      刚开始看的时候看的云里雾里的,现在稍微明白一点了。现在假设有一个form,一个MainWindow,如图所示:

       实现点击PushButton,将文本框中的内容传输到MainWindow中,显示为Label。界面我已经提前画好。下面是备份代码:

    form.h:

    #ifndef FORM_H
    #define FORM_H
    
    #include <QWidget>
    
    namespace Ui {
    class Form;
    }
    
    class Form : public QWidget
    {
        Q_OBJECT
    
    public:
        explicit Form(QWidget *parent = 0);
        ~Form();
    
    signals:
        void sendData(QString);
    
    private slots:
    
        void on_sendBtn_clicked();
    
    private:
        Ui::Form *ui;
    };
    
    #endif // FORM_H

    form.cpp:

    #include "form.h"
    #include "ui_form.h"
    
    Form::Form(QWidget *parent) :
        QWidget(parent),
        ui(new Ui::Form)
    {
        ui->setupUi(this);
    }
    
    Form::~Form()
    {
        delete ui;
    }
    
    
    void Form::on_sendBtn_clicked()
    {
         emit sendData(ui->lineE->text());
    
    }

    MainWindow.h:

    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
    
    #include <QMainWindow>
    #include "form.h"
    namespace Ui {
    class MainWindow;
    }
    
    class MainWindow : public QMainWindow
    {
        Q_OBJECT
    
    public:
        explicit MainWindow(QWidget *parent = 0);
        ~MainWindow();
    private slots:
        void receiveData(QString data);
    private:
        Ui::MainWindow *ui;
    };
    
    #endif // MAINWINDOW_H

    MainWindow.cpp:

    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
        //传值测试
        Form *form=new Form;
        form->setGeometry(100,300,400,400);
        form->show();
       connect(form,SIGNAL(sendData(QString)),this,SLOT(receiveData(QString)));
    
    }
    
    MainWindow::~MainWindow()
    {
        delete ui;
    }
    void MainWindow::receiveData(QString data)
    {
        ui->label->setText(data);
    }

    main.cpp:

    #include "mainwindow.h"
    #include <QApplication>
    
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        MainWindow w;
        w.show();
    
        return a.exec();
    }
  • 相关阅读:
    完成登录与注册页面的前端
    JavaScript 基础,登录验证
    CSS实例:图片导航块
    导航,头部,CSS基础
    web基础,用html元素制作web页面
    web基础
    timestamp与timedelta,管理信息系统概念与基础
    datetime处理日期和时间
    加载静态文件,父模板的继承和扩展
    开始Flask项目
  • 原文地址:https://www.cnblogs.com/ForRickHuan/p/5878836.html
Copyright © 2011-2022 走看看