Тема гляжу прикрыта!
Будем откупоривать.
Я считаю что цели достигли не верно!
Конечно если главное было достичь то проблем нет.
И так имею схожую проблему у меня Button вместо ChekBox
Разницы почти нет.
И так у меня Qdevelop и QDesigner и QT 4.5.2 -
я тока ючусьИ так я кинул на форму контрол QtableWidget
Поставил кнопку создаю программно ячейки 6х6 и программно вставляю бутоны(кнопки)
void MainWindowImpl::InsertControlButtonToTable() { QPushButton * ButonaME = 0;
for (int j = 1; j < 6; j++) { ButonaME = new QPushButton(ConvertText("Эт Кнопка № ") + QString("%1").arg(j),tableWidget); tableWidget->setCellWidget(j, 5, ButonaME); ButonaME->setObjectName(QString("ButonaME_%l").arg(j)); QObject::connect(ButonaME, SIGNAL(clicked()), this, SLOT(this->Mesaga())); } QMetaObject::connectSlotsByName(this); pushButton_14->setEnabled(false); }
|
И как вы догадались слоты не работают!
Странно..
Вы спросите зачем
QMetaObject::connectSlotsByName(this);
сам не знаю - но думаю истина где-то рядом
И так почему я предполагаю что надо обычным способом ставить слоты а не перехватывать их от tableWidget
Я для эксперимента кинул кнопку на форму и подключил через дизайнер к слоту Mesaga
Потом программно вставил ее в таблицу -и о чюдо!
Кнопка реагирует на нажатия самостоятельно!
Делаем вывод мы чего то не умеем
заглянув в файлик ui.H я не нашол чего -то необычного но привожу его строки касающеюся простой функциональности
Удалил все что мог..
#ifndef UI_MAINWINDOW_H #define UI_MAINWINDOW_H
#include <QtGui/QWidget>
QT_BEGIN_NAMESPACE
class Ui_MainWindow { public: QWidget *centralwidget; QPushButton *pushButton; void setupUi(QMainWindow *MainWindow) { if (MainWindow->objectName().isEmpty()) MainWindow->setObjectName(QString::fromUtf8("MainWindow")); MainWindow->resize(786, 742); centralwidget = new QWidget(MainWindow); centralwidget->setObjectName(QString::fromUtf8("centralwidget")); pushButton = new QPushButton(centralwidget); pushButton->setObjectName(QString::fromUtf8("pushButton")); pushButton->setGeometry(QRect(10, 10, 161, 23));
retranslateUi(MainWindow); QObject::connect(pushButton, SIGNAL(clicked()), MainWindow, SLOT(Mesaga())); QObject::connect(tableWidget, SIGNAL(itemEntered(QTableWidgetItem*)), MainWindow, SLOT(ClikedToControls(QTableWidgetItem*)));
toolBox->setCurrentIndex(0);
QMetaObject::connectSlotsByName(MainWindow); } // setupUi
void retranslateUi(QMainWindow *MainWindow) { MainWindow->setWindowTitle(QApplication::translate("MainWindow", "MyWindow", 0, QApplication::UnicodeUTF8)); pushButton->setText(QApplication::translate("MainWindow", "\320\234\320\265\321\201\320\260\320\263\320\260 \320\261\320\276\320\272\321\201 \320\270\320\267\320\262\321\200\320\260\321\211\320\265\320\275\320\270\320\265", 0, QApplication::UnicodeUTF8)); Q_UNUSED(MainWindow); } // retranslateUi
};
namespace Ui { class MainWindow: public Ui_MainWindow {}; } // namespace Ui
QT_END_NAMESPACE
#endif // UI_MAINWINDOW_H
|
И вот значит так созданная кнопка работает а моим методом нет..
Короче если тут знающие люди путь ответят в чем разница.