2000行之widget练习之二

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2000行之widget练习之二相关的知识,希望对你有一定的参考价值。

//mydialog.h
#ifndef MYDIALOG_H
#define MYDIALOG_H

#include <QDialog>

namespace Ui {
    class MyDialog;
}

class MyDialog : public QDialog
{
    Q_OBJECT

public:
    explicit MyDialog(QWidget *parent = 0);
    ~MyDialog();

private slots:
    void on_pushButton_clicked();
signals:
    void dlgReturn(int); //自定义的信号

private:
    Ui::MyDialog *ui;
};

#endif // MYDIALOG_H
//widget.h
#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

namespace Ui {
    class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();
private slots:
    void showValue(int value);
private:
    Ui::Widget *ui;
};

#endif // WIDGET_H
//mydialog.cpp
#include "mydialog.h"
#include "ui_mydialog.h"

MyDialog::MyDialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::MyDialog)
{
    ui->setupUi(this);
}

MyDialog::~MyDialog()
{
    delete ui;
}

// 确定按钮
void MyDialog::on_pushButton_clicked()
{
    // 获取输入的数值
    int value = ui->spinBox->value();
    // 发射信号
    emit dlgReturn(value);
    // 关闭对话框
    close();
}
//widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include "mydialog.h"

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);

    // 创建对话框
    MyDialog *dlg = new MyDialog(this);
    // 将对话框中的自定义信号与主界面中的自定义槽函数进行关联
    connect(dlg,SIGNAL(dlgReturn(int)),this,SLOT(showValue(int)));
    // 显示对话框
    dlg->show();
}

Widget::~Widget()
{
    delete ui;
}

// 自定义槽函数
void Widget::showValue(int value)
{
    ui->label->setText(tr("获取的值是:%1").arg(value));
}
//main.cpp
#include <QApplication>
#include "widget.h"
#include <QTextCodec>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    //QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
    Widget w;
    w.show();

    return a.exec();
}

 

以上是关于2000行之widget练习之二的主要内容,如果未能解决你的问题,请参考以下文章

OpenGL基础学习之二代码基本结构

oracle强化练习之分组函数

算法练习之:487-3279

Promise--实践练习之AJAX请求 & Promise封装AJAX操作

2000行之句柄

2000行之motherfatherchild