- #ifndef WIDGET_H
- #define WIDGET_H
-
- #include
- #include
//普通按钮 - #include
//网格布局管理器 - #include
//标签 - #include
//行编辑器 - #include
//水平布局管理器 - #include
//垂直布局管理器 -
- class Widget : public QWidget
- {
- Q_OBJECT
-
- public:
- Widget(QWidget *parent = 0);
- ~Widget();
- public slots: //槽函数
- void pb_array_handler();
- private:
- QPushButton *pb[10]; //10个按钮
- QLabel *lb; //标签
- QLineEdit *le; //行编辑器
- };
-
- #endif // WIDGET_H
- #include "widget.h"
-
- Widget::Widget(QWidget *parent)
- : QWidget(parent)
- {
- setFixedSize(430,320);
-
- QGridLayout *grd = new QGridLayout(); //创建网格布局管理器
- for(int i = 0;i < 10;i++) //设置10个按钮
- {
- pb[i] = new QPushButton(this); //创建按钮
- pb[i]->setText(QString::number(i)); //按钮名字
- grd->addWidget(pb[i],i/5,i%5,1,1); //第一个参数为设置的对象指针,所在起始行数,所在起始列数,所占行数,所占列数
- connect(pb[i],&QPushButton::clicked,this,&Widget::pb_array_handler); //关联槽函数
- }
- lb = new QLabel("用户点击了什么按钮?",this); //创建标签
-
- le = new QLineEdit(this); //创建行编辑器
- le->setReadOnly(true); //设置只读
-
- QHBoxLayout *hbox = new QHBoxLayout(); //创建水平布局管理器
- hbox->addWidget(lb);
- hbox->addWidget(le);
-
- QVBoxLayout *vbox = new QVBoxLayout(); //创建垂直布局管理器
- vbox->addLayout(grd);
- vbox->addLayout(hbox);
-
- setLayout(vbox); //设置总布局
- }
- void Widget::pb_array_handler() //槽函数
- {
- QPushButton *button = static_cast
(sender()); //append需要转换类型 - QString tmp = le->text();
- tmp.append(button->text()); //相加
- le->setText(tmp);
- }
-
- Widget::~Widget()
- {
-
- }