解释:
1、封装内容:
函数1:添加按钮
函数2:在界面初始化显示
2、返回值:
QPushButton *:addWidget(...) 参数为部件指针
3、参数:
1:部件图标地址
2:部件对象名
3:部件大小(默认为20x20)
函数定义:
#include <QHBoxLayout> #define APP_ICON(i) ":/Resources/MainWindow/app/"+i+".png" QPushButton* addOtherButton(const QString&icon, const QString&objName, QSize size = QSize(20, 20)); void initAppButton(); private slots: void onButtonClicked();
源代码:
QPushButton * CCMainWindow::addOtherButton(const QString & icon, const QString & objName, QSize size) { QPushButton*btn = new QPushButton(this); btn->setFixedSize(size); //大小 btn->setObjectName(objName); //部件对象名 btn->setProperty("hasborder", true);//动态属性 drawButtonIcon(btn, icon); connect(btn, &QPushButton::clicked, this, &CCMainWindow::onButtonClicked); return btn; } void CCMainWindow::onButtonClicked() { qDebug() << QString::fromLocal8Bit("按钮被点击"); }
使用:
void CCMainWindow::initAppButton() { QHBoxLayout* applayout = new QHBoxLayout(ui.appWidget); applayout->setContentsMargins(0, 0, 0, 0); //边距 applayout->setSpacing(2); //部件间隔 //自命名,和文件中的部件对象名保持一致 QStringList applist = { "app_1","app_2", "app_3", "app_4", "app_5", "app_6", "app_skin" }; for (auto app : applist) { applayout->addWidget(addOtherButton(APP_ICON(app), app)); } applayout->addStretch(); //垫片 QStringList bottomlist = { "app_8","app_9", "app_10", "app_11" }; for (auto app : bottomlist) { ui.bottomLayout_up->addWidget(addOtherButton(APP_ICON(app), app)); } ui.bottomLayout_up->addStretch(); //垫片 }

361

被折叠的 条评论
为什么被折叠?



