Qt Creator'da bir alışveriş listesi olarak işlev gören bir GUI projem var. QTableWidget öğelerine öğe eklemek için QLineEdit kullanıyorum. Kullanıcı bir şeyi girer, QPushButton'a basar. Yuva daha sonra QTableWidget öğesine, ilk sütunda ve ikinci sütunda yeni bir QPushButton ile yeni bir satır ekler. Daha sonra kullanıcının düğmeyi basabilmesini ve bu satırı temizlemesini istiyorum, ancak bu yuvaya veya göndericiye nasıl erişeceğimi bilmiyorum (uygun terimden emin değilim.) İşte buradaki kod şu ana kadar . itemList
benim QTableWidget'ım, itemInput
QLineEdit.Çalışma zamanı sırasında oluşturulan bir düğmenin tıklat() yuvasına erişme - Qt Creator
void MainWindow::on_btnAddItem_clicked()
{
ui->itemList->insertRow(ui->itemList->rowCount());
ui->itemList->setItem((ui->itemList->rowCount())-1,0,new QTableWidgetItem(ui->itemInput->text()));
QPushButton *clear = new QPushButton("Clear",this);
ui->itemList->setIndexWidget(ui->itemList->model()->index(ui->itemList->rowCount()-1, 1), clear);
ui->itemInput->clear();
}
Program başlangıçta çalıştırıldığı zaman budur. onlar butonuna tıklayın sonra, on_btnAddItem_clicked()
Sonra şöyle çalışır ve ben açık düğmesi bir parçasıdır satırı kaldırmak yapmak istiyorum.
Ben yeni alanı oluşturmak gerekir mi? Herhangi bir yardım?
*** Yeni bir yuva mı oluşturmalıyım? *** Varsa, yok. Görüyorsunuz ki yeni butonu yaratıyorsunuz fakat 'clicked()' sinyalini MainWindow'daki bir yuvaya bağlamıyorsunuz. Ayrıca, oluşturduğunuz yeni yuva için 'on_' adlandırma kuralını kullanmayın, çünkü bu otomatik bir bağlantı olmayacaktır. – drescherjm
@drescherjm, anladığım kadarıyla, "clicked()" sinyalini QTableWidget'ın (veya modelinin veya temsilcisinin) belirli bir yuvasına giriş parametresi olarak karşılık gelen bir "QTableWidgetItem" ile bağlamaya çalışıyor. QTableWidgetItem öğesinin içeriğini düzenlemek/silmek mümkündür. 'Clicked() 'sinyali sadece' bool 'parametresini parametre olarak geçirebilir, böylece hangi satırın silineceğini nasıl bulurlar? Kulağa doğru geliyor mu? – vicrucann
Hayır hayır, zaten girdiğim() sinyali aynı satırda yeni bir PushButton ile birlikte tabloya kullanıcı girdisini ekler. Daha sonra kullanıcının düğmeyi basabilmesini ve satırı temizlemesini istiyorum. Bu şekilde, tablodaki girdileri silebilirler. Ancak satırları ve düğmeleri önceden oluşturamıyorum çünkü bir kullanıcının ne kadar girdi gireceğini bilmiyorum, bu yüzden programın çalışmasına rağmen bir butonun nasıl yapılacağını bilemiyorum. – Tom