赞
踩
QT是挪威Trolltech开发的多平台C++图形用户界面应用程序框架
典型应用
不要写中文路径
语法:Connect(A, SIGNLA(aaa()), B, SLOT(bbb()));
widget.h
- #ifndef WIDGET_H
- #define WIDGET_H
-
- #include <QWidget>
- #include <QPushButton>
- #include <QLineEdit>
-
- class Widget : public QWidget
- {
- Q_OBJECT
-
- public:
- Widget(QWidget *parent = 0);
- ~Widget();
-
-
- public slots:
- void movestr()
- {
- //一个文本输入框中的内容复制到另一个文本输入框中
- QString tem = le->text();
- le1->setText( tem );
- }
- private:
- QPushButton *pb;
- QLineEdit *le, *le1;
- };
-
- #endif // WIDGET_H
widget.cpp
- #include "widget.h"
- #include <QVBoxLayout>
-
- Widget::Widget(QWidget *parent)
- : QWidget(parent)
- {
- pb = new QPushButton("OK",this); //按钮
-
- le = new QLineEdit(this); //行文本输入
- le1 = new QLineEdit(this);
-
- // pb->setGeometry(0, 100, 50, 50); //x,y原点 a,b大小
- QVBoxLayout *vbox = new QVBoxLayout; //垂直布局管理器
- vbox->addWidget(le1); //添加控件
- vbox->addWidget(le);
- vbox->addWidget(pb);
-
- this->setLayout(vbox); //设置所使用的布局管理器
-
- //信号与槽机制
-
- //当点击了按钮,那么行文本输入清除
- // connect(pb, SIGNAL(clicked(bool)), le, SLOT(clear()));
-
- /*将按钮的clicked(bool)信号与当前对象的movestr()槽函数连接起来。
- 当按钮被点击时,会触发movestr()槽函数的执行。*/
- connect(pb, SIGNAL(clicked(bool)), this, SLOT(movestr()));
- }
-
- Widget::~Widget()
- {
-
- }
学会看帮助文档
布局控件示例
加些属性
widget.h
- #ifndef WIDGET_H
- #define WIDGET_H
-
- #include <QWidget>
-
- #include <QLineEdit>
- #include <QTextEdit>
- #include <QComboBox>
- #include <QTimeEdit>
- #include <QDial>
- #include <QSlider>
- #include <QScrollBar>
-
- #include <QLabel>
- #include <QLCDNumber>
- #include <QProgressBar>
-
-
-
- class Widget : public QWidget
- {
- Q_OBJECT
-
- public:
- Widget(QWidget *parent = 0);
- ~Widget();
-
- private:
- //input
-
- QLineEdit *le;
- QTextEdit *te;
- QComboBox *cb;
- QTimeEdit *timee;
- QDial *dl;
- QSlider *sd;
- QScrollBar *sb;
-
- //output
- QLabel *lbtxt, *lbpic;
- QLCDNumber *lcd;
- QProgressBar *pgb;
-
- };
-
- #endif // WIDGET_H
widget.cpp
- #include "widget.h"
- #include <QVBoxLayout>
- #include <QHBoxLayout>
-
-
- Widget::Widget(QWidget *parent)
- : QWidget(parent)
- {
-
-
- //input
- le = new QLineEdit(this); //如果后续用布局管理器,这里this可以不加
- te = new QTextEdit;
- cb = new QComboBox;
- cb->addItem("read");
- cb->addItem("write");
- timee = new QTimeEdit;
- dl = new QDial;
- sd = new QSlider;
- sd->setOrientation(Qt::Horizontal);
- sb = new QScrollBar;
- sd->setOrientation(Qt::Horizontal);
-
- QVBoxLayout *vbox = new QVBoxLayout; //垂直布局
- vbox->addWidget(le);
- vbox->addWidget(te);
- vbox->addWidget(cb);
- vbox->addWidget(timee);
- vbox->addWidget(dl);
- vbox->addWidget(sd);
- vbox->addWidget(sb);
-
-
-
- //output
- lbtxt = new QLabel("hello");
- lbpic = new QLabel;
- QPixmap pix("1.jpg");
- lbpic->setFixedSize(100,100);
- lbpic->setScaledContents(true);
- lbpic->setPixmap(pix);
- lcd = new QLCDNumber;
- pgb = new QProgressBar;
-
- QVBoxLayout *vbox1 = new QVBoxLayout; //垂直布局
- vbox1->addWidget(lbtxt);
- vbox1->addWidget(lbpic);
- vbox1->addWidget(lcd);
- vbox1->addWidget(pgb);
-
-
-
- QHBoxLayout *hbox = new QHBoxLayout; //水平布局包含两边垂直布局
- hbox->addLayout(vbox);
- hbox->addLayout(vbox1);
- this->setLayout(hbox);
-
- //connect
- connect(dl,SIGNAL(valueChanged(int)), lcd, SLOT(display(int)));
- connect(dl,SIGNAL(valueChanged(int)), pgb, SLOT(setValue(int)));
- connect(dl,SIGNAL(valueChanged(int)), sd, SLOT(setValue(int)));
-
- }
-
- Widget::~Widget()
- {
-
- }
QT是什么?QT的信号与槽机制是用来做什么的?
QT是一个跨平台的C++应用程序开发框架,提供了丰富的工具和库,用于简化图形用户界面(GUI)程序的开发。
QT的信号与槽机制是一种在QT框架中用来处理事件和通信的机制。信号与槽机制允许对象之间进行异步通信,当一个对象的状态发生变化时,它可以发送一个信号,其他对象可以连接到这个信号并在接收到信号时执行相应的槽函数。这种机制使得对象之间的耦合度较低,易于实现模块化和复用。因此,信号与槽机制在QT框架中被广泛用于处理事件、消息传递和数据更新等各种情况。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。