checkout.cpp
파일에 MainWindow
클래스 외부에서 구현 한 일부 GUI (QTableWidget
을 사용하여 계산서가 있음)가 있습니다. checkout.cpp
안에 슬롯을 연결하는 데 문제가 있습니다. MainWindow
클래스는 QMainWindow
에서 상속되므로이 슬롯에 적절한 슬롯 함수를 연결할 수 있습니다.메인 윈도우 외부에서 슬롯을 연결
CheckOut
클래스에서 Q MainWindow
또는 QWidget
을 상속하지 않는 클래스에서 어떻게 수행합니까?
EDIT (CODE) :
CheckOut::CheckOut(string token)The CheckOut class does not inherit any other class. I am getting error: /home/sudeep/Desktop/mesonero project/mesonero-build-desktop-Qt_4_8_1_in_PATH__System__Release/../mesonero/management.cpp:29: error: no matching function for call to 'QObject::connect(QPushButton*&, const char [11], Management* const, const char [8])'
{ CustomerToken = token;
if(!findCustomer())
QMessageBox::critical(0,QObject::tr("Check Out"),"Invalid Customer Token");
else{
generateBill();
provideDiscount();
QPushButton *payButton = new QPushButton("Pay");
QObject::connect(payButton,SIGNAL(clicked()),this,SLOT(deleteCustomer()));
CustomerBill->layout()->addWidget(payButton);
}
}
void CheckOut::deleteCustomer()
{
DatabaseManager *dbm = DatabaseManager::Instance();
QSqlQuery query("DELETE FROM `Residing_Customer` WHERE Customer_Token = '"+QString::fromStdString(CustomerToken)+"'",dbm->db);
query.exec();
CustomerBill->close();
}
EDIT (ERROR) :
/home/sudeep/Desktop/mesonero project/mesonero-build-desktop-Qt_4_8_1_in_PATH__System__Release/../mesonero/checkout.cpp:29: error: no matching function for call to 'QObject::connect(QPushButton*&, const char [11], CheckOut* const, const char [8])'
신호/슬롯 및 상속 (떨어져 당신이 QObject로부터 상속해야한다는 사실로부터). 문제가 무엇인지는 분명하지 않습니다. 일할 수있는 샘플 코드를 게시 할 수 있습니까? – Mat
QMainWindow가 QObject를 상속 받았다고 가정하면 connect (...., ...., QObject *, ...)는 해당 클래스가 QMainWindow를 상속하면 실행될 수 있습니다. – sudeepdino008
QObject로부터 상속받은 모든 것은 신호와 슬롯 (방출 또는 연결)을 사용할 수 있습니다. 나는 아직도 당신이 관리하지 않는 것을 이해하지 못합니다. 이 코드에서 연결 호출이 발생했습니다. 다른 인스턴스간에 동일한 연결을 만들지 못하게 할 수 있습니까? (위의'payButton'과'this'는 QObject를 가리키는 포인터입니다. 그게 유일한 것입니다.)' – Mat