کانکت کردن تابع کلیک به pushbutton به همراه ایندکس
سلام به همه. من تو Qt مبتدی هستم. یه برنامه دارم مینویسم که با زدن یک دکمه هنگام اجرای برنامه ، هر بار یک کلید به فرم اضافه میشه. حالا مشکلم اینجاست که نمیدونم چجوری متوجه بشم که کدوم یکی از کلیدها فشرده شده. یعنی میخوام براشون ایندکس بزارم که وقتی کلیک شد تو کد تابع کلیک بتونم تشخیص بدم کدوم کلید فشرده شده.
اینم کدی هست که برای کلید اصلی نوشتم.
void MainWindow::on_Items_clicked()
{
QMessageBox msg;
msg.setText(QString::asprintf("Click"));
msg.exec();
}
void MainWindow::on_btnAddItem_clicked()
{
QString text = QString::asprintf("Item %i",Counter+1);
QPushButton* button = new QPushButton(text,this);
connect(button, &QPushButton::clicked,SLOT (on_Items_clicked()));
button->setGeometry(20+(Counter/10)*170 , 20+(Counter%10)*40 , 150 , 30);
button->setVisible(true);
}
نقل قول: کانکت کردن تابع کلیک به pushbutton به همراه ایندکس
سلام! شما ۹۵ درصد مسیر رو اومدید و چیزی که میخواید انجام بشه خیلی سخت نیست.
خب با توجه به اینکه متغیر counter رو دارید باید یک تغییری در اسلات on_Items_clicked بدید بدین صورت:
void on_item_clicked(int itemIndex)
ببینید اسم تابع رو از on_Items_Clickd به on_item_clicked تغییر دادم و بجاش index رو ورودی دادم
حالا برای اینکه این تابع رو وصل کنید به Clicked Signal باید از lumbda function استفاده کنید، قسمت connect بصورت زیر در میاد:connect(button, &QPushButton::clicked, this, [&](){
on_item_clicked(Counter);
});
در نهایت باید Counter رو یدونه زیاد کنید بصورت Counter++