-4
일부 코드를 작성했습니다. 고객으로 로그인하면 customer
(해당 열의 값은 1)을 숨겨야합니다. 신호에 매개 변수를 전달해야합니다. 내 customerLogin
은 isSa
입니다. 이러한 매개 변수를 신호 및 슬롯에 전달하는 방법은 무엇입니까?신호 및 슬롯
Main.cpp
:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
initialize();
SafeOTPWindow w;
Login login;
login.connect(&login, SIGNAL(loggedIn()), &w, SLOT(show()) );
login.connect(&login, SIGNAL(loginCancelled() ), &w, SLOT(close()));
login.show();
a.exec();
}
Login.h
다음의 경우
void SafeOTPWindow::initLogTable()
{
QList<OtpLog> logs;
int ret = otpRepo.fetchOtpLogs(logs);
if(ret != errorCodes::SUCCESS)
{
QMessageBox msgBox(QMessageBox::Critical, QString("SafeOTP"),
QString("OTPLogs could not be fetched"),QMessageBox::Ok, this);
msgBox.exec();
QLOG_ERROR() << "fetchLogs error " << ret;
return;
}
QStandardItemModel *model = new QStandardItemModel(0,5,this); //5 columns
model->setHorizontalHeaderItem(0, new QStandardItem(QString("Date")));
model->setHorizontalHeaderItem(1, new QStandardItem(QString("Customer")));
model->setHorizontalHeaderItem(2, new QStandardItem(QString("Server")));
model->setHorizontalHeaderItem(3, new QStandardItem(QString("Authorized by")));
model->setHorizontalHeaderItem(4, new QStandardItem(QString("Description")));
for(QList<OtpLog>::Iterator lIt = logs.begin(); lIt != logs.end(); lIt++)
{
OtpLog& log = *lIt;
QList<QStandardItem*> row;
row.push_back(new QStandardItem(log.when.toString("dd MMM yyyy, hh:mm")));
row.push_back(new QStandardItem(QString(log.customer)));
row.push_back(new QStandardItem(QString(log.server)));
row.push_back(new QStandardItem(QString(log.author)));
row.push_back(new QStandardItem(QString(log.reason)));
model->appendRow(row);
}
// set the data model
ui->tblLog->setModel(model);
//Set the column to hide
ui->tblLog->setColumnHidden(1,true);
// set the column widths
int tw = ui->tblLog->width() - 5;
int w = tw/6;
for(int i=0; i<4;i++)
{
ui->tblLog->setColumnWidth(i,w);
tw -= w;
}
ui->tblLog->setColumnWidth(4,tw);
}
신호 및 슬롯에 대한 Qt 문서를 읽으려고 했습니까? 그것들은 값이 바뀔 때 신호를 내보내는 간단한 'Counter'클래스를 가지고 있으며 신호는 새로운 값을가집니다. http://doc.qt.io/qt-5/signalsandslots.html –
시도해 보았습니다.하지만 위의 예에서 사용하는 방법을 혼동합니다. – cyley
두 번째 예를 삭제하고 하나의 문제 만 고집하는 것이 좋습니다. 일단 당신이 그것을위한 해결책을 가지고 있다면, 당신은 스스로 두 번째 문제를 해결할 수 있어야합니다. – Tas