标签:box guide 图片 format disco odi ima 介绍 工程
前言:介绍1对多,多对1以及多对多的案例。
演示内容:在QLineEdit输入时,同步label,text browser以及调试输出板同步显示。
拖入line Edit、Label和Text Browser标签
namespace Ui { class Widget; } class Widget : public QWidget { Q_OBJECT public: explicit Widget(QWidget *parent = 0); ~Widget(); public slots: //添加槽函数打印调试信息 void PrintText(const QString& text); private: Ui::Widget *ui; };
#include "widget.h" #include "ui_widget.h" #include <QDebug> //qDebug函数需要的头文件 Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { ui->setupUi(this); connect(ui->lineEdit, SIGNAL(textEdited(QString)), ui->label, SLOT(setText(QString)));//将 lineEdit 的编辑信号关联到 label 的设置文本槽函数; connect(ui->lineEdit, SIGNAL(textEdited(QString)), ui->textBrowser, SLOT(setText(QString)));//将 lineEdit 的编辑信号关联到 textBrowser 的设置文本槽函数 connect(ui->lineEdit, SIGNAL(textEdited(QString)), this, SLOT(PrintText(QString)));//将 lineEdit 的编辑信号关联到主窗体的 PrintText 槽函数 } Widget::~Widget() { delete ui; } void Widget::PrintText(const QString &text) { qDebug()<<text; //打印到调试输出面板 }
演示内容:三个信号对应一个槽。
拖入三个button,并将ObjectName分别修改为pushButtonA,pushButtonB和pushButtonC。
#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(); public slots: //添加槽函数进行弹窗 void FoodIsComing(); private: Ui::Widget *ui; }; #endif // WIDGET_H
#include "widget.h" #include "ui_widget.h" #include <QMessageBox> #include <QDebug> Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { ui->setupUi(this); //三个按钮的信号都关联到 FoodIsComing 槽函数 connect(ui->pushButtonA, SIGNAL(clicked()), this, SLOT(FoodIsComing())); connect(ui->pushButtonB, SIGNAL(clicked()), this, SLOT(FoodIsComing())); connect(ui->pushButtonC, SIGNAL(clicked()), this, SLOT(FoodIsComing())); } Widget::~Widget() { delete ui; } void Widget::FoodIsComing() { //获取信号源头对象的名称 QString strObjectSrc = this->sender()->objectName(); qDebug()<<strObjectSrc; //打印源头对象名称 //将要显示的消息 QString strMsg; //判断是哪个按钮发的信号 if( "pushButtonA" == strObjectSrc ) { strMsg = tr("Hello Anderson! Your food is coming!"); } else if( "pushButtonB" == strObjectSrc ) { strMsg = tr("Hello Bruce! Your food is coming!"); } else if( "pushButtonC" == strObjectSrc ) { strMsg = tr("Hello Castiel! Your food is coming!"); } else { //do nothing return; } //显示送餐消息 QMessageBox::information(this,tr("Food"),strMsg); }
-END-
参考自:https://qtguide.ustclug.org/
标签:box guide 图片 format disco odi ima 介绍 工程
原文地址:https://www.cnblogs.com/chendeqiang/p/10280204.html