首页 > 代码库 > 2000行之widget练习之二
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 = http://www.mamicode.com/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练习之二
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。