做寝室介绍网站,网站中主色调,牛商网做网站的思路,济南市住建局官网创建QT对话框工程#xff0c;动态创建多个按钮#xff0c;把动态创建的按钮存放在QList中#xff0c;并关联同一个信号槽函数#xff0c;在该槽函数中根据按钮对象名称各自进行其他事项处理。
在mainwindow.h文件添加
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include…创建QT对话框工程动态创建多个按钮把动态创建的按钮存放在QList中并关联同一个信号槽函数在该槽函数中根据按钮对象名称各自进行其他事项处理。
在mainwindow.h文件添加
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include QMainWindow
#include QPushButton //Push按钮类
#include QList //列表类
#include QDebug //QDebug类QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent nullptr);~MainWindow();private slots:void slotButtonClicked();//动态创建QPushButton按钮信号槽函数private:Ui::MainWindow *ui;QListQPushButton* btnPushlist;//动态创建按钮的列表QPushButton *btnPush;//动态创建按钮指针int total3;//动态创建按钮的个数};
#endif // MAINWINDOW_H在mainwindow.cpp添加
#include mainwindow.h
#include ui_mainwindow.hMainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui-setupUi(this);//动态创建按钮for(int i0;itotal;i){btnPushnew QPushButton(this);//设置按钮在主对话框的位置btnPush-setGeometry(50,100*i,100,25);//设置按钮对象名字btnPush-setObjectName(btnPushQString::number(i));//设置按钮显示文本btnPush-setText(按钮QString::number(i));//向QList添加成员项btnPushlist.append(btnPush);//关联信号槽函数connect(btnPushlist.at(i),SIGNAL(clicked()),this,SLOT(slotButtonClicked()));}}MainWindow::~MainWindow()
{delete ui;//删除QList占用的内存及清空列表qDeleteAll(btnPushlist);btnPushlist.clear();
}/*动态创建QPushButton按钮信号槽函数*/
void MainWindow::slotButtonClicked()
{QPushButton *btn qobject_castQPushButton*(sender());//获取按钮显示文本QString text btn-text();//获取按钮对象名称QString name sender()-objectName();//do something在这里进行其他事项处理qDebug()text;qDebug()name;}效果